1、 Django中settings的路徑問題
要將相對路徑改為絕對路徑。主要有: MEDIA_ROOT、TEMPLATE_DIRS、STATIC_PATH。
示例:
MEDIA_ROOT = 'D:/WorkDev/workspace/djangoTest'
TEMPLATE_DIRS = (
# Put strings here, like
"/home/html/django_templates" or "C:/www/django/templates".
# Always use forward
slashes, even on Windows.
# Don't forget to use
absolute paths, not relative paths.
'D:/WorkDev/workspace/djangoTest/templates',
)
STATIC_PATH = 'D:/WorkDev/workspace/djangoTest/media'
2、 httpd.conf中應加入mod_python的module
在http.conf中必須加入:
LoadModule
python_module modules/mod_python.so
3、 VirtualHost的配置
取消httpd.conf中Include conf/extra/httpd-vhosts.conf前的注釋,就可以在httpd-vhosts.conf文件中配置VirtualHost,
4、 PythonPath的路徑問題
<Location
"/">
SetHandler python-program
PythonPath "['D:/WorkDev/workspace'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE djangoTest.settings_apache
PythonAutoReload Off
PythonDebug On
</Location>
注意這里的PythonPath,將project的目錄加入PythonPath時,應為此project的上一級目錄,比如這里就不能寫為‘D:/WorkDev/workspace/ djangoTest’,否則會找不到settings的配置。
5、 靜態文件的配置
為了讓圖片、css、js能夠被apache加載,需進行如下配置:
Alias
/site_media D:/WorkDev/workspace/djangoTest/media
<Location
"/site_media">
SetHandler None
</Location>
6、 靜態文件無法加載的問題
首先,檢查Alias設置的路徑是否正確;
其次,檢查settings.py中的MEDIA_ROOT、TEMPLATE_DIRS、STATIC_PATH是否設置為絕對路徑;
最后,檢查apache的error日志,若發現:
[Thu Jul 31
14:36:08 2008] [error] [client 127.0.0.1] client denied by server
configuration: D:/WorkDev/workspace/djangoTest/media/djangopowered.gif,
referer: http://localhost:8080/address/
那么說明是因為對這些靜態文件的訪問被拒絕了,應加入Directory的配置:
<Directory
"D:/WorkDev/workspace/djangoTest/media/">
Order Deny,Allow
Allow from all
</Directory>
重啟apache服務。
以上均為我在搭建apache+mod_python時遇到的問題,希望能給遇到同樣問題的朋友一點幫助。