私はdjangoアプリケーションをビルドする際にrunserverコマンドを使用してウェブサイトをテストしますが、デプロイメントでは私のウェブサイトをwww.test.com/で公開しますdjango。サブディレクトリ内のDjango
私のIISは、「django」と呼ばれる私のデフォルトのウェブサイトの下でアプリケーションで設定しています。
私は正常に動作しますが、Djangoは私のURLスキーマを認識しない場合、すべてが、それは以下の一つであることを期待している:
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'),
]
この場合、私はこのように私のurlpatternsを変更する必要があります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'),
])),
]
これは良いアプローチですか?それは働いていますが、私はこのソリューションの品質についてはわかりません。
今、テストされているので、デバッグでは現在の名前でインクルードする必要がありますか?もしそうでなければ、私自身のローカルデバッグサーバ上のサブディレクトリをテストすることはできないからです。 しかし、FORCE_SCRIPT_NAMEを使用して、URL補間(URLテンプレートタグを使用することが期待どおりに機能します)! – VirtApp
@VirtApp 'FORCE_SCRIPT_NAME = '/ django /''は、開発設定ではなく、プロダクション設定でのみ設定してください。 – knbk
私の知るところですが、私の開発サーバーでは、そのディレクトリをシミュレートする必要がありますので、デバッグ設定の場合は条件付きのものを追加する必要がありますか、そうではありません: 'urlpatterns2 = patterns ''、 url(= 'admin /'、include(admin.site.urls))、 url(r '^ admin /'、include(admin.site.urls))url(r '^ $'、 'yourapp.views.home'、name = 'Home' ( ''、 url(r '^ django /'、include(urlpatterns2))、 ) ' – VirtApp