Django的admin样式丢失【静态文件收集】
在部署完Django项目后,进行admin后台登录发现样式丢失,后台日志显示:js和css文件丢失
解决办法:
配置settings.py如下:
#DEBUG打开时,app的静态文件默认从这里读取
STATIC_URL = '/static/' #静态文件根目录,当关闭DEBUG的时候admin从STATIC_ROOT获取静态文件,同时需要配置url
STATIC_ROOT = ("f:/py_workspace/DJ/proj/people/static/") #Django部署在Apache服务器后的公共静态文件路径STATICFILES_DIRS
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "common_static"),
)
配置url.py如下
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
然后,进行 python manage.py collectstatic 操作,将相关静态文件都copy到static_root的路径下 【实际是copy了admin的static文件到app的static文件夹内】
刷新即可看到已经渲染成功。
参考:https://blog.csdn.net/a657941877/article/details/8953233
其他参考:
使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了。特记录下来。
关键的概念:Django中,静态资源的存放通过设置 STATIC_URL, STATICFILES_DIRS 来设置,一般STATIC_URL设置为:/static/
STATIC_URL='/static/', 这个static 是在Django 具体APP下建立的static目录,用来存放静态资源。而STATICFILES_DIRS一般用来设置通用的静态资源,对应的目录不放在APP下,而是放在Project下,例如:
STATICFILES_DIRS=(os.path.join(BASE_DIR, "common_static"),)
具体在模板文件中访问的时候,都是统一用:/static/资源名的方式,就可以访问到资源,不论具体的目录是APP下的static,还是project下的common_static, 都可以用/static/资源名的方式访问到。
为增强可移植性,在模板中可以用:STATIC_URL来代替具体的/static/来设置资源路径,但是需要在settings.py中2个地方进行设置,否则会发生取不到资源的错误:
1. INSTALLED_APPS 中,加入 'django.contrib.staticfiles'
2. TEMPLATES 中,context_processors中,加入django.template.context_processors.static
模板中调用时:
<img src="{{STATIC_URL}}pic.jpg " />
最新文章
- mysql max_allowed_packet
- Maven插件之maven-archetype-plugin
- SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?
- android 音频采集1
- go中间的&;和*
- POJ 1113 凸包模板题
- 平衡二叉树(AVL)java实现
- POJ3250(单调栈)
- 融会贯通——最常用的“合成复用原则”技能点Get
- json格式 (JavaScipt Object Notation)
- Kotlin入门(31)JSON字符串的解析
- 067 HA与updateStateByKey结合
- AudiosessionSetActive
- 动态规划法(五)钢条切割问题(rod cutting problem)
- 服务器返回的“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0提供程序””错误解决
- python问答模块
- Android沉浸式状态栏
- 自定义字体TextView
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(六)之 好友申请、同意、拒绝
- python XML基础