【发布时间】:2016-08-24 18:02:25
【问题描述】:
我知道这个问题的话题很少,但我仍然无法解决它。我有这个结构
/home
/server
/server_1
/static
Static 是由 collectstatic 生成的,我有我所有的静态文件(包括 admin/css)
apach conifg 中静态文件的别名如下:
Alias /static/ /home/server/server_1/static/
<Directory /home/server/server_1/static/>
Require all granted
</Directory>
当我运行 django 管理页面时,我可以看到登录面板,但没有 css,但是如果我点击“显示页面源”,我可以看到
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
我可以点击,我可以看到整个css代码(没有404错误)那么,服务器可以看到这个文件吗?但它可以使用它还是什么?
当我尝试打开时:
http://www.my.server.com/static/
我明白了
Forbidden
You don't have permission to access /static/ on this server.
我有 STATIC_ROOT 和 STATIC_URL,我可以正确运行 collectstatif,但是服务器在渲染它时出现了一些问题。
编辑
我刚刚安装了 django-rest-framework 和这个服务器以及与 css 相同的情况。 css文件在serveradres.com/static/,我可以通过redirect serveradres.com/static/rest_framework/css/bootstrap.min.css访问它
但是网站仍然在没有这个 css 的情况下呈现页面。
更新
Google chrome 检查员说:
Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
【问题讨论】:
-
您使用的是哪个版本的 Apache 和 mod_wsgi?这是您正在使用的 Apache 2.4+ 声明。如果您使用的是早期版本,则语法会有所不同。
-
另外,我不确定是不是这样,但请尝试在您的 Directory 指令中丢失尾部斜杠:
<Directory /home/server/server_1/static/>应该是<Directory /home/server/server_1/static>。 -
我试过没有这个斜线 - 同样的错误。我有 apache 3.4 和 4.3 wsgi
-
3.4 是你的 Python 版本;你的 Apache 版本呢?
apachectl -V -
apache 2.4 错过了密钥,抱歉。 Python 是 3.5