这里有很多关于同一主题的帖子,我尝试过多次我认为适用的帖子。然而,我仍然有这个错误。除了管理员的静态文件外,我为你建造的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 /”之后实际存在的两个目录级别。为什么网站运行正常?这不应该导致问题吗?
无论如何,我在这里做错了什么?如何启动并运行这些管理静态文件?
答案 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 /文件夹中触及的所有文件,并将所有规则合并到一个地方。这导致我删除了重复/冲突规则,从而解决了这个问题。
现在我想我需要和治疗师谈谈......