[英]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.