Apache上的Django Admin静态文件

时间:2014-09-06 17:36:45

标签: django apache

这里有很多关于同一主题的帖子,我尝试过多次我认为适用的帖子。然而,我仍然有这个错误。除了管理员的静态文件外,我为你建造的django网站提供的服务都很好。

版本:Django 1.6,Apache 2.4.7,Ubuntu 14.04

好的 - 我运行了manage.py collectstatic,这里是静态文件夹:

/srv/bahai-site/bahai-site/soul/static

这包含四个文件夹:1)admin / 2)bootstrap / 3)core /和4)flags /

在这些文件夹中,我可以看到所有预期的静态文件,并且它们包含我期望的代码。

当查看站点本身的静态文件时,/static/core/css/desktop_992.css会正确加载,而/static/admin/css/base.css会抛出404.

http.conf中的Apache指令:

Alias /static/ /srv/bahai-site/bahai-site/soul/static/

<Directory /srv/bahai-site/bahai-site/soul/static/>
Allow from all
</Directory>

WSGIScriptAlias / /srv/bahai-site/soul/soul/wsgi.py
WSGIPythonPath /srv/bahai-site/soul/soul:/srv/envelope/bahai-site/lib/python2.7/site-packages

<Directory /srv/bahai-site/soul/soul>
<Files wsgi.py>
Allow from all
</Files>
</Directory>

附带问题:请注意,WSGIScriptAlias和WSGIPythonPath只包含一个“bahai-site /”目录级别,而不是“/ srv /”之后实际存在的两个目录级别。为什么网站运行正常?这不应该导致问题吗?

无论如何,我在这里做错了什么?如何启动并运行这些管理静态文件?

2 个答案:

答案 0 :(得分:0)

就pythonpath而言,我个人不在我的apache虚拟主机配置文件中包含它并且它可以工作。也许这不需要?老实说,我并不是那么精通服务器安装。它似乎是一个许可问题。

我会使用sudo运行collectstatic,然后我还要确保静态文件夹具有www-data组权限,这是apache开箱即用的权限。

如果您需要帮助设置Ubuntu文件夹的权限,请在此处查看此链接。 https://askubuntu.com/questions/244406/how-do-i-give-www-data-user-to-a-folder-in-my-home-folder

答案 1 :(得分:0)

问题在于我使用竞争指令为Apache更新了两个不同的配置文件。

其他初学者的注意事项:

指令(即......之类的东西)可以放在apache2根目录下的任何文件中 - 在我的情况下是/ etc / apache2 /中的任何文件。 (对高级用户的问题:这只适用于Ubuntu吗?或几乎所有的Linux / Unix?)这会让您感到困惑,因为如果您使用来自多个在线帖子/文档的信息解决问题,您可能会有一个大杂烩各种人的Apache配置首选项/样式。因此我的问题。

作为初学者,您可能希望看到某种单一位置,您可以将配置/自定义(在本例中为指令)放入其中。 Apache的情况并非如此。你可以把任何这些放在任何地方。一旦你提升了对Apache的知识,这可能就不错了,但是当你开始时它很糟糕。

我的解决方法是浏览/ etc / apache2 /文件夹中触及的所有文件,并将所有规则合并到一个地方。这导致我删除了重复/冲突规则,从而解决了这个问题。

现在我想我需要和治疗师谈谈......