我有一個網站我Django的做,我試圖將它部署到我已經躺在附近(使用mod_wsgi的所推薦的官方文檔)的Apache服務器和大部分,一切都很好。我有一個問題讓Apache正確提供與我的項目相關的靜態文件。通過比較我的服務器的文件結構所呈現的HTML源來看,我要說的是,我的應用程序請求從正確的位置正確的文件,但由於某種原因Apache的拋出了我404.這是我的Apache配置:阿帕奇僅提供Django的靜態文件目錄的第一級
<VirtualHost *:80>
ServerName book
ServerAlias www.book.dev book.dev
DocumentRoot /var/www/book
Alias /static/ /var/www/book/static
Alias /media/ /var/www/book/media
<Directory /var/www/book/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias//home/rich/sites/book/apache/django.wsgi
<Directory /home/rich/sites/book>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
如果我在我的Web瀏覽器(在這種情況下爲www.book.dev/static
)中導航到STATIC_ROOT
,我在服務器上看到目錄結構中第一級的(正確)列表。然而,試圖遵循子目錄的鏈接,甚至根目錄中的文件,只產生404。我在2.X範圍內使用Django 1.3,Python 2.6和某些版本的apache(無論是最近在Debian的包回購版)
任何幫助表示讚賞。
編輯:(情節複雜!)
所以,擺弄多一些之後,我發現的東西,我覺得很有趣。我發現,如果我運行開發服務器,該URL是從靜態內容是牽強的相同到靜態文件的URL,當Apache是服務於文件生成。這就是說,它們都採用settings.py
中配置的形式/static/<file>
,但有時它不起作用。
我必須閱讀文檔,3或4次......我不能相信我沒注意到尾隨斜線!謝謝你的幫助! – rjacks