【发布时间】:2019-08-24 11:00:09
【问题描述】:
今天部署后,出于某种原因,该项目不再显示在collectstatic 过程中收集的项目的样式。我可以从任何浏览器完全访问这些文件。我已经检查了所有权限。我已经从开发服务器和其他机器浏览到该站点以消除软件\字体的可能性。不知道这里发生了什么。
我从不同的服务器提供文件。其他 django 项目不受影响。不过,没有其他 django 项目使用像 wagtail 这样的东西。在这一点上拉我的头发,可能只是错过了一些简单的东西。我错过了什么?
base.py 配置
STATIC_ROOT = '/var/www/html/static.xxxxxx.net'
STATIC_URL = 'http://static.xxxxxx.net/'
MEDIA_ROOT = '/var/www/html/media.xxxxxx.net'
MEDIA_URL = 'http://media.xxxxxx.net/'
检查服务器上是否存在文件:
-rw-rw-r-- 1 xxxxxx xxxxxx 13648 Aug 24 09:18 /var/www/html/static.xxxxxx.net/wagtailadmin/css/userbar.3d5222a7eba2.css
检查 CSS 相对引用
-rw-rw-r-- 1 xxxxxx xxxxxx 68812 Aug 24 09:18 /var/www/html/static.xxxxxx.net/wagtailadmin/css/../../wagtailadmin/fonts/opensans-regular.45f80416d702.woff2
Django 调试工具栏显示了 4 个用于生产和开发环境的静态文件。一切都是一样的。
在 chrome 检查视图中,如果我将开发环境中的相对 CSS 样式表链接替换为来自文件服务器的链接,它会以同样的方式中断。
发件人:
/static/wagtailadmin/css/userbar.css
收件人:
http://static.xxxxxx.net/wagtailadmin/css/userbar.css
同样,我可以将该地址粘贴到我的浏览器中,任何浏览器,我都会看到样式表。我真的不知道我的文件服务器如何阻止浏览器处理 CSS,但这就是它开始的样子。
更新: 在 chrome 检查视图中,如果我从文件服务器中删除使用样式表的 css 引用,则页面会丢失所有样式\颜色\等。如果我将链接重新应用到我的服务器,它会再次应用样式。 它似乎应用了除图标\字形之外的所有样式。
更新 2:如果我更改为 STATIC_URL = '/static/',我会得到样式...直到我关闭调试:-/
【问题讨论】:
-
什么是生产环境——Nginx、UWSGI、Apache?
-
@DanSwain Apache。我也更新了帖子。发现其他症状。