2010-06-17 158 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中使用該前綴。