我正在使用linux中的mod_python在apache服务器上部署Django项目。我创建了一个目录结构,如: / var / www / html / django / demoInstall其中demoInstall是我的项目。在httpd.conf中我输入了以下代码。
<Location "/django/demoInstall">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE demoInstall.settings
PythonOption django.root django/demoInstall
PythonDebug On
PythonPath "['/var/www/html/django'] + sys.path"
</Location>
它让我获得了django环境,但问题是urls.py中提到的网址无法正常工作。
在我的网址文件中,我提到了网址:
(r'^$', views.index),
现在,在浏览器中,我将URL设置为:http://domainname/django/demoInstall/,我期待调用views.index。但我想这只是网址:http://domainname/。
当我将网址映射更改为:
时 (r'^django/demoInstall$', views.index),
它工作正常。请建议,因为我不想更改url配置文件中的所有映射。
提前致谢。
答案 0 :(得分:2)
有一个相当简单的方法可以使用django,而不必触及apache。
将您的urls.py
重命名为其他内容,例如site_urls.py
然后创建一个新的urls.py,其中包含
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^django/demoInstall/', include('site_urls.py')),
)
这将确保所有网址反转继续有效。
答案 1 :(得分:0)
应该是:
PythonOption django.root /django/demoInstall
即,必须匹配Location指令中的子URL。
您不应该在urls.py中使用该前缀。