0
点赞
收藏
分享

微信扫一扫

Django :上线CSS样式丢失处理

新鲜小饼干 2022-11-29 阅读 111


遇到后,在查找了几个网站后,下面方法解决了我的问题:

问题:在利用 ​​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

举报

相关推荐

0 条评论