簡體   English   中英

子目錄中的Django

[英]Django in sub-directory

當我構建django應用程序時,我將使用runserver命令來測試我的網站,但是在部署中,假設我將在以下網站發布我的網站:www.test.com/django。

我的IIS在我的默認網站“ django”下配置了一個應用程序。

我期望一切都能正常工作,但是django無法識別我的網址架構,即以下內容:

urlpatterns = [
    # Examples:
    url(r'^$', app.views.home, name='home'),
    url(r'^contact$', app.views.contact, name='contact'),
    url(r'^about', app.views.about, name='about'),
]

在這種情況下,我需要像這樣修改urlpattern,以便通過www.test.com/django為應用程序提供服務:

urlpatterns = [
    url(r'^(?i)django/', include([ #Application name
        # Examples:
        url(r'^$', app.views.home, name='home'),
        url(r'^contact$', app.views.contact, name='contact'),
        url(r'^about', app.views.about, name='about'),
    ])),
]

這是一個好方法嗎? 它正在工作,但我不確定此解決方案的質量。

解決此問題的首選方法是讓您的網絡服務器傳遞SCRIPT_NAME wsgi變量。 Django在構建網址時會自動將此變量用作前綴,而無需更改您的網址配置。 我不熟悉IIS,所以無法告訴您如何執行此操作。 它的確具有優勢,因為腳本名是傳遞給Django而不是在其設置中配置的,因此您的代碼完全與WSGI應用程序的實際掛載點無關。

或者,您可以將FORCE_SCRIPT_NAME設置設置為/django/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM