2013-06-13 30 views
2

我在將django應用程序部署到apache-Server時遇到了問題。該網站應可通過http://localhost/suburl/訪問。 我使用虛擬環境。django-在子網址中的應用

的(縮短)虛擬主機看起來像這樣:

<VirtualHost *:80> 
    [.. admin, documentroot, logfiles..] 
    [.. static files alias ..] 

    # WSGI-definitions: 
    WSGIDaemonProcess spo python-path=/home/ai/project/source:/home/ai/project/virtualenv/lib/python2.6/site-packages 
    WSGIProcessGroup spo 
    WSGIScriptAlias /suburl /home/ai/project/source/django.wsgi 
</VirtualHost> 

的(標準)WSGI文件看起來像這樣:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

結果是:

Django不創建正確的URL,每個URL是http://localhost/path_to_view而不是http://localhost/suburl/path_to_view。如果我手動調用郊區,網站顯示正確。

我發現一些消息來源(例如http://www.normanmurrin.com/blog/2013/05/07/portable-django-apps/)告訴我,mod_wsgi/django應該支持開箱即用。那麼,它的確如此。除reverse()和url-Tag之外。

任何關於使它工作的線索的想法?

+0

你是如何創建這些網址的? –

+0

使用{%url%}標記中的指定網址。 – Marius

+0

你可以嘗試「WSGIScriptAlias/suburl//home/ai/project/source/django.wsgi」而不是[...]/suburl [...] –

回答

1

線索是settings.py中的FORCE_SCRIPT_NAME。

Thanks @Graham!