此问题类似于here和here提出的问题。然而,对于它们的解决方案似乎已经过时了当前的Django版本(1.8)。
我的django项目在developnment服务器上运行得很好。现在我正在尝试将其部署到生产中,唯一的麻烦是在默认的django管理视图中引用的css文件没有被正确引用。
以下是默认管理员视图尝试通过以下方式查找的内容:
http://localhost/static/admin/css/base.css
我正在尝试遵循django docs
我们强烈建议使用django.contrib.staticfiles来处理 管理文件(以及前面概述的Web服务器) 部分;这意味着使用collectstatic管理命令 收集STATIC_ROOT中的静态文件,然后配置Web 服务器在STATIC_URL上提供STATIC_ROOT。
以下是我的000-default.conf文件的片段
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/testapp/
Alias /static/ /var/www/html/testapp/static
<Directory /var/www/html/testapp/static>
Require all granted
</Directory>
WSGIDaemonProcess sampleapp python-path=/var/www/html/testapp:/var/www /html/testapp/env/lib/python2.7/site-packages
WSGIProcessGroup sampleapp
我的 STATIC_ROOT 和 STATIC_URL 配置如下:
STATIC_ROOT = '/var/www/html/testapp/static/'
STATIC_URL = '/static/'
我使用 collectstatic 命令收集了django admin的静态文件,但仍未提供文件。
我无法弄清楚设置有什么问题。
更新 根据@Cheng的评论,我附加了来自apache访问日志的行
127.0.0.1 - - [27/May/2015:18:36:16 +0530] "GET /static/admin/css/base.css HTTP/1.1" 404 512 "http://localhost/admin/login/?next=/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [27/May/2015:18:36:16 +0530] "GET /static/admin/css/login.css HTTP/1.1" 404 514 "http://localhost/admin/login/?next=/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
工作解决方案 感谢@Cheng,我得到了解决问题的方法。我进一步阅读docs以确认解决方案。
请注意,如果在URL路径中包含尾随/,则表示服务器 将需要尾随/以扩展别名。同样,如果 你省略了URL路径上的斜杠,那么你也必须省略它 文件路径
如果你仔细观察我提供的片段,我就错过了文件路径中的尾部斜杠。