Django的admin样式丢失【静态文件收集】

本文介绍了解决Django项目在部署后,admin后台登录时样式丢失的问题。通过正确配置settings.py和url.py文件,以及执行特定命令,可以确保静态资源如CSS和JS文件正常加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在部署完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.youkuaiyun.com/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 " />

 

转载于:https://www.cnblogs.com/phyger/p/9473744.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值