django admin 部分自带的 css 文件 collectstatic,生成的文件大小为 0?

2022-10-11 16:56:58 +08:00
 piaochen0
项目用的 django 2.1.5 ,已经稳定运行了两三年了。后台管理用的自带的 admin 。

但是这两天一个偶然机会突然发现,在我自己电脑开发环境调试模式下,访问 admin 后台,部分 admin 自带的 css 文件访问返回 200 ,但是大小为 0 。
清空浏览器缓存,更换浏览器后仍然如此。

到生产服务器上看,collectstatic 完成后,static/admin/css 目录下,有几个 css 文件,大小也为 0 ,只有两三个文件大小正常。

具体情况如图:
![]( https://files.catbox.moe/m9e5v2.png)

服务器上 static 目录下这部分大小为 0 的文件,在我自己开发环境用浏览器访问大小为 0 ,大小非 0 的文件在开发环境也都能正常访问。
查看本机和服务端 site-package 中的 django 目录,这些 css 文件都是有内容的。

目前发现 js 目录有一个 related-widget-wrapper.js 文件大小为 0 (这个文件在 lib 中 django 同级目录下没发现),其他没发现异常。
django2.1.5 我们这边几个项目在用,目前发现有的项目有这个问题,有的正常。 对比了下 settings 设置,也没发现什么特殊的地方。admin 看上样式也都正常。

这个是怎么回事?有什么解决思路吗?
麻烦各位指教。
1363 次点击
所在节点    Django
1 条回复
piaochen0
2022-11-01 16:00:56 +08:00
问题解决了,记录下解决过程,提供给其他小伙伴参考:

settings.py 中 INSTALLED_APPS 的问题,collectstatic 时,同样的静态文件,假如在前面的 app 中已经存在,后面 app 中的文件就不会被 collect 了。
我试图把 django.contrib.admin 放在 INSTALLED_APPS 中第二个,第一个是 simpleui,发现立马就正常了。
样式正确,之前没有内容的 css 文件也有内容了。
继续排查原因,发现 INSTALLED_APPS 中,有一个其他同事增加的 jet ,虽然已经不用了,但是 INSTALLED_APPS 中没有删除。并且放在了位置的第一个。
jet 包中 static/admin 中,有和自带 admin 同名的文件,大小是 0 。

问题解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/886127

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX