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的端口。css

這樣就能夠了。
而後再命令行運行:將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來配置的靜態文件。
相關文章
相關標籤/搜索