微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

django admin后台提示没有static样式相关的文件,nginx-uwsgi 配置

python aide_941 2℃ 0评论

问题现象: 将
DEBUG = TEMPLATE_DEBUG = False
设置为False后,访问admin的管理后台,没有样式了。
 解决办法:
vim settings.py 确保有下面的这两行
STATIC_URL = '/static/'
STATIC_ROOT = '/var/searchlog/static/'
以下是nginx.conf的配置文件。我在其中添加了带有颜色的这段,我是利用的uwsgi的拉起django的。所以在这里nginx将/转到相应的端口,然后关于静态文件,我添加了一个/static,此处小弟因为路径问题,犯了点二,之前放到/root下面的目录,一直不行,然后将其放到了/var目录下面,就可以了。希望不要有兄弟犯这个二病。
复制代码
[root@VM_58_36_centos var]# egrep -v '#|^$' /etc/nginx/nginx.conf
worker_processes  2;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location /static {
            alias /var/searchlog/static/;
        }
        access_log /var/log/nginx_access.log;
        error_log /var/log/nginx_error.log;
        location / {
            uwsgi_pass 127.0.0.1:9099;
            include /etc/nginx/uwsgi_params;
        }
        access_log off;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
[root@VM_58_36_centos var]#
复制代码

 

下再来看下uwsgi.ini的配置文件
复制代码
[root@VM_58_36_centos searchlog]# cat uwsgi.ini
[uwsgi]
vhost = false
plugins = python
socket = 127.0.0.1:9099
master = true
enable-threads = true
workers = 10
wsgi-file = /var/searchlog/searchlog/wsgi.py
chdir = /var/searchlog/
[root@VM_58_36_centos searchlog]#
复制代码

如果您也要使用uwsgi来拉起django的话,那么你可以直接复制我的这个配置,然后改下wsgi-file与chdir,这两个分别是wsgi.py的文件,与项目目录。这个就不再说了。还有上面使用的端口是9099,注意,我在nginx.conf的配置文件中,是转到127.0.0.1:9099的端口的,这两个需要对应起来,就是nginx会将/的访问转到uwsgi的9099的端口。

这样就可以了。

然后再命令行运行:将uwsgi跑起来

uwsgi --ini /var/searchlog/uwsgi.ini &
上面的static的文件夹,我是利用python manage.py collectstatic 来直接生成的。
步骤如下:
先在settings.py配置文件中设置一个:STATIC_ROOT = ‘/var/searchlog/static/’
然后再运行python manage.py collectstatic ,这样django会将相应的静态文件放到static的目录下面。
最后来看下项目的树形目录《此处省略一些static的静态文件,要不太多了》:
复制代码
 1 [root@VM_58_36_centos var]# tree searchlog/
 2 searchlog/
 3 |-- db.sqlite3
 4 |-- log
 5 |   |-- __init__.py
 6 |   |-- admin.py
 7 |   |-- migrations
 8 |   |   |-- __init__.py
 9 |   |-- models.py
10 |   |-- templates
11 |   |   |-- 404.html
12 |   |   |-- 500.html
13 |   |   |-- base.html
14 |   |   |-- login.html
15 |   |   |-- logout.html
16 |   |   |-- search.html
17 |   |   |-- showlog.html
18 |   |-- tests.py
19 |   |-- views.py
20 |-- manage.py
21 |-- searchlog
22 |   |-- __init__.py
23 |   |-- settings.py
24 |   |-- urls.py
25 |   |-- wsgi.py
26 |-- static
27 |   `-- admin
28 |       |-- css
29 |       |   |-- base.css
30 |       |   `-- ............<此处省略一些内容>
31 |       |-- img
32 |       |   |-- changelist-bg.gif
33 |       |   |-- gis
34 |       |   |   |-- move_vertex_off.png
35 |       |   |   `-- move_vertex_on.png
36 |       |   |-- icon-no.gif
37 |       |   |-- icon-unknown.gif
38 |       |   `-- ............<此处省略一些内容>
39 |       `-- js
40 |           |-- LICENSE-JQUERY.txt
41 |           |-- actions.min.js
42 |           |-- admin
43 |           |   |-- DateTimeShortcuts.js
44 |           |   `-- RelatedObjectLookups.js
45 |           |-- calendar.js
46 |           `-- ............<此处省略一些内容>
47 `-- uwsgi.ini
48 
49 [root@VM_58_36_centos var]#
复制代码
这样就可以了,总结下相应的步骤:
1.在settings.py下面
STATIC_URL = ‘/static/’
STATIC_ROOT = ‘/var/searchlog/static/’
有这两个配置
2.在nginx.conf的配置文件中添加这个配置
location /static {
alias /var/searchlog/static/;
}
这样就可以了,直接使用nginx来配置的静态文件。

转载请注明:SuperIT » django admin后台提示没有static样式相关的文件,nginx-uwsgi 配置

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!