遇到后,在查找了几个网站后,下面方法解决了我的问题:
问题:在利用 Nginx+uwsgi
部署Django项目之后,发现 admin
模块的CSS样式、JS等文件访问全部404,丢失找不到原始资源。
解决之道
在 setting.py
中新增配置 STATIC_ROOT
, 然后 执行 python manage.py collectstatic
此时关于static的配置如下:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_ROOT = '/home/yanfriends_server/static'
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
执行 python manage.py collectstatic
的结果如下:
(djangoblog) [root@i-pz58c8g2 simpleblog]# python manage.py collectstatic
Copying '/project/django/simpleblog/static/static/css/bootstrap.min.css'
Copying '/project/django/simpleblog/static/static/css/bootstrap-theme.min.css'
Copying '/project/django/simpleblog/static/static/css/django.css'
... ...
... ...
Copying '/root/.pyenv/versions/djangoblog/lib/python3.5/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js'
Copying '/root/.pyenv/versions/djangoblog/lib/python3.5/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js'
95 static files copied to '/opt/nginx/static'.
可以看出 python manage.py collectstatic
的作用是收集Django项目
中所有涉及到的静态资源,统计放到 STATIC_ROOT
管理访问
此时,修改 Nginx中关于Django项目的static配置为:
location /static {
# alias /project/django/simpleblog/static;
alias /home/yanfriends_server/static;
}
最后访问admin模块发现可以带样式的正常访问!
链接:https://www.jianshu.com/p/38457576ce70