Django本身不用來服務media文件;應該把這項工作留給你選擇的網絡服務器。 我們推薦使用一個單獨的網絡服務器(即沒有運行Django的一個)來服務media。 想了解更多信息,看下面的章節。
不過,如果你沒有其他選擇,所以只能在同Django一樣的Apache VirtualHost 上服務media文件,這里你可以針對這個站點的特定部分關閉mod_python:
1
2
3
|
<Location "/media/"> SetHandler None </Location> |
將 Location 改成你的media文件所處的根目錄。
你也可以使用 <LocationMatch> 來匹配正則表達式。 比如,下面的寫法將Django定義到網站的根目錄,并且顯式地將 media 子目錄以及任何以 .jpg , .gif , 或者 .png 結尾的URL屏蔽掉:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings </Location> <Location "/media/"> SetHandler None </Location> <LocationMatch "\.(jpg|gif|png)$"> SetHandler None </LocationMatch> |
在所有這些例子中,你必須設置 DocumentRoot ,這樣apache才能知道你存放靜態文件的位