2010-06-17 117 views
1

我在Apache中使用mod_python在Apache服务器上部署Django项目。我创建了如下目录结构: /var/www/html/django/demoInstall其中demoInstall是我的项目。在httpd.conf中,我提出了以下代码。Django-modpython部署项目

<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), 

,在浏览器中我把喜欢的网址:http://domainname/django/demoInstall/和我期待的views.index被调用。但我想它是期待的url只是:http://domainname/

当我更改URL映射到:

(r'^django/demoInstall$', views.index), 

它工作正常。请建议,因为我不想更改url配置文件中的所有映射。

在此先感谢。

回答

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')), 
) 

这将确保所有的URL倒车继续工作了。

+0

啊!如此简单和容易。我不知道为什么它没有打到我的脑海里。 非常感谢。 – 2010-06-17 09:38:16

0

这应该是:

PythonOption django.root /django/demoInstall 

也就是说,必须Location指令子URL匹配。

您不应该在urls.py中使用该前缀。