2016-08-24 32 views
0

我知道这个问题很少有话题,但我仍然无法解决它。我有这样的结构wsgi_mod dosn't服务管理员静态文件

/home 
    /server 
    /server_1 
     /static 

静态被collectstatic产生和我有我所有的staticfiles(包括管理员/ 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,其余的框架,该服务器并使用CSS同样的情况。 Css文件在serveradres.com/static/中,我可以通过重定向访问它serveradres.com/static/rest_framework/css/bootstrap.min.css

但是,网站仍然呈现没有此CSS的页面。

UPDATE

谷歌Chrome检查说:

Failed to load resource: net::ERR_BLOCKED_BY_CLIENT 
+0

你使用的是什么版本的Apache和mod_wsgi?这是您正在使用的Apache 2.4+声明。如果您使用的是早期版本,则语法不同。 – FlipperPA

+0

另外,我不确定是否是这样,但是尝试在Directory指令中丢失斜线:''应该是'。 – FlipperPA

+0

我试过没有这个斜线 - 同样的错误。我有apache 3.4和4.3 wsgi – mrsolupo

回答

1

运行Apache为不能回家的目录里面看到由Linux系统上的主目录通常设置权限的用户。建议您将您的应用程序代码移到您的主目录以外的地方,以便Apache用户可以看到。

+0

无法为此设置权限?那么为什么我可以通过重定向来看到css cod呢?我可以通过浏览器访问这个文件。 – mrsolupo

+0

不知道您的意思是“无法设置该权限”。我从来没有说过要更改任何权限。如果您的主目录“/ home/server''已经将其权限更改为”o + rx'',以便Apache可以在其中查看,那么禁止顶级目录被禁止的原因是Apache禁用了目录浏览默认情况下。您必须启用它,尽管不推荐。请参阅http://httpd.apache.org/docs/2.4/mod/core.html#options –

+0

中的“选项索引”好吧,我不想启用它。但这是一个次要的“问题”,我仍然不明白为什么我的网站没有CSS渲染,但我可以通过浏览器访问它们。请参阅编辑。 – mrsolupo

0

我解决了这个问题。我知道 - 这很奇怪,但它是由google chrom中的adblock引起的。当我关闭它时,它会起作用。