2016-08-24 48 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引起的。當我關閉它時,它會起作用。