2011-06-19 82 views
0

我已經改變了我的Apache 2.2的httpd.conf提供靜態文件,同時在Apache上運行的Django和mod_wsgi的2.2

#Serve static files 
Alias /static/ "E:\Python\Django\carlsblog\static\" 
<Directory "E:\Python\Django\carlsblog\static"> 
Order allow,deny 
Options Indexes 
Allow from all 
IndexOptions FancyIndexing 
</Directory> 

#Start mod_wsgi as default handler 
WSGIScriptAlias/"E:\Python\Django\carlsblog\django.wsgi" 

<Directory "E:\Python\Django\carlsblog"> 
Allow from all 
</Directory> 

和我的應用程序可以成功運行,只有靜態文件不能訪問,404拋出Django在

但是,如果我改變這一行

Alias /static/ "E:\Python\Django\carlsblog\static\" 

Alias /static/ "E:\Python\Django\carlsblog\static" 

可以看到靜態文件夾的索引頁,但無法到達文件。當我檢查Apache的錯誤日誌在這個時候,我發現了這樣的事情:

File does not exist "E:\Python\Django\carlsblog\staticmy_static_file.txt" 

它似乎有一個「\」丟失,任何人有解決這個想法?

+0

這與Django無關,是一個Apache問題:Django不在服務器中生成環境中的靜態文件,正如文檔中所述。請相應地更改您的標題。 –

+0

這與你的問題沒有關係,但如果你的服務器之外有人來訪問你的Python代碼,你應該刪除它,因爲這是一個巨大的安全問題。 –

+0

@ e-satis我已將django.wsgi移動到E:\ Python \ Django \ carlsblog \ apache中,並更改了<目錄「E:\ Python \ Django \ carlsblog \ apache」> – CarlLee

回答

4

嘗試從別名本身去掉結尾的斜線:

Alias /static "E:\Python\Django\carlsblog\static" 

更新(2015年):這個答案是自2011年目前,它被認爲是一個更好的做法是使用gunicorn + nginx爲django應用程序提供服務。

+0

謝謝,您救了我的一天! – CarlLee

+0

在我的(窗戶)我不得不做一個像這樣的重擊 - 別名/靜態「D:/潮汐/靜態/」有反向打擊沒有奏效。 – whoisearth

0

你的模板可以嗎?在您的瀏覽器中使用View Source檢查您生成的html。

+0

這與我的模板無關,我試圖直接獲取靜態文件來測試我的配置是否適合提供靜態文件 – CarlLee