Django Admin Css在使用mod_wsgi部署在apache上时丢失

时间:2015-05-27 06:24:51

标签: django apache

此问题类似于herehere提出的问题。然而,对于它们的解决方案似乎已经过时了当前的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路径上的斜杠,那么你也必须省略它   文件路径

如果你仔细观察我提供的片段,我就错过了文件路径中的尾部斜杠。

0 个答案:

没有答案