django admin后台提示没有static样式相关的文件
问题现象: 将
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来配置的静态文件。