/someuri. その構成では、サーバーはヘッダーの SCRIPT_NAME の値を Django に渡します。Django は、それがそのサブパスで提供されていることを認識します。
ただし、フロントエンド サーバーを制御できない場合は、プロジェクトの settings.py に追加することで、Django に強制的にその値を引き継がせることができます。
USE_X_FORWARDED_HOST = True
FORCE_SCRIPT_NAME = '/someuri'
その後、管理アプリケーションであっても、静的ファイルや css などで問題が発生する場合があります。デフォルトの構成では、これらは変更なしで Django 開発サーバーによって提供されます。ただし、上記の変更により、静的ファイルは失われます。これらのファイルを内部の Django 開発サーバーを介して (外部 Web サーバーを介さずに) 提供したい場合は、settings.py プロジェクト ファイルに以下を追加する必要があります。
STATIC_SUFFIX = '/static/'
STATIC_URL = FORCE_SCRIPT_NAME + STATIC_SUFFIX
MEDIA_SUFFIX = '/media/'
MEDIA_URL = FORCE_SCRIPT_NAME + MEDIA_SUFFIX
同じファイルで、TEMPLATES を変更し、以下を追加する必要もあります。
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [ STATIC_ROOT ],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
次に、定義されたディレクトリに静的ファイルを収集します。
python manage.py collectstatic
また
python3 manage.py collectstatic
プロジェクト レベルの urls.py ファイルは次のようになります (Django v1.11)。
import os
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
from django.views.generic.base import TemplateView
urlpatterns = [
url(r'^admin/', admin.site.urls),
] + static(settings.STATIC_SUFFIX, document_root=settings.STATIC_ROOT)
その後、管理パッケージは適切なスタイルシートとすべてで問題なく動作するはずです。うまく機能していないように見えるのは、スラッシュがないため、「VIEW SITE」リンクだけです。その解決策は見つかりませんでしたが、おそらく管理アプリケーションをハッキングする必要があります。
それ以外にも、サブパスの下に Django をインストールするためのさまざまなガイドがオンラインで公開されています。面倒ですが、上記は最悪の頭痛の種を回避します。