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时遇到的问题,希望能给遇到同样问题的朋友一点帮助。
本文详细介绍了在使用Django Web框架开发应用时如何正确配置Apache服务器,包括解决路径问题、配置静态文件加载、VirtualHost设置等关键步骤。
1507

被折叠的 条评论
为什么被折叠?



