比如說界面變成了這樣:
解決辦法:
1、在服務器上打開python,然后imort django ,print django.__file__查看django包的目錄路徑,然后在settings.py的路徑里加上admin的static文件的路徑
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static').replace('\\', '/'),
os.path.join(django.__file__.rstrip('__init__.py'), 'contrib/admin/static/admin').replace('\\', '/'),
)
2、修改settings.py中STATIC_ROOT為你的static靜態文件的物理路徑,比如說我靜態文件存放在 /opt/jira_platform/static中,最后修改settings.py中STATIC_ROOT指向 /opt/jira_platform/static。這個目錄是服務器上用來收集靜態文件的目錄
3、在服務器上運行python manage.py collectstatic命令,這將從Django資源包中復制必須的靜態文件到STATIC_ROOT指示的static文件夾中,這其中包括admin界面所必須的樣式表(style)、圖片(image)及腳本(js)等。
這里提示一下,假如不做第1步的話,直接運行這個命令會導致如下的錯誤提示(最后幾行):
File "/usr/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 41, in __init__ self.storage = get_storage_class(settings.STATICFILES_STORAGE)() File "/usr/lib/python2.7/dist-packages/django/contrib/staticfiles/storage.py", line 23, in __init__ raise ImproperlyConfigured("You're using the staticfiles app " django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting.
如果出現上述提示,說說明需要配置STATIC_ROOT文件(You’re using the staticfiles app without having set the STATIC_ROOT setting)。
4、修改Nginx配置,比如/etc/nginx/nginx.conf或者/etc/nginx/sites-enabled/里面的配置文件,在server節中添加如下內容(請根據實際情況修改):
location /static {
alias /opt/jira_platform/static; # 這個路徑需要與第二步設置的路徑一致
}
完成上面三步后,重新加載相應設置:
uwsgi reload nginx -s reload
|
然后就可以成功了
二、模板丟失問題
由於nginx運行后代管了靜態目錄,所以如果后台有nginx進程時,修改的一些文件無法正常顯示,頁面展示的都是緩存,此時需要重啟nginx
如果不重啟nginx,單純修改django項目並啟動django進程,可能會遇到報錯或靜態文件和模板文件丟失的問題