【发布时间】:2023-03-23 12:57:01
【问题描述】:
我正在尝试设置一个可以接受多个子域 URL 的 Django 应用程序。我想在本地测试一下。由于我无法确定传递具有子域的 url 的第一步,因此我无法进入第二部分(确定我为 django-subdomains 设置的 URLconf 是否有效)。中间件检查子域,并根据该子域选择一个 URLconf 文件。
我在 /etc/hosts 中设置了以下配置。当我运行服务器并点击这些 URL 时,我会访问真正的 test.com。
127.0.0.1 payments.test.com
127.0.0.1 rampup.test.com
(如果重要的话)来自 settings.py 的 django-subdomains 中间件设置:
SUBDOMAIN_URLCONFS = {
'payments': 'main.urls',
'rampup': 'rampup.urls'
}
MIDDLEWARE_CLASSES = (
'subdomains.middleware.SubdomainURLRoutingMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
【问题讨论】:
-
这是来自docs 的行-> 将 subdomains.middleware.SubdomainURLRoutingMiddleware 添加到您的 Django 设置文件中的 MIDDLEWARE_CLASSES 中。如果您使用 django.middleware.common.CommonMiddleware,则子域中间件应位于 CommonMiddleware 之前。
-
从您的主机文件中删除 :8000 - 它不应该存在。 hosts 文件处理域到 IP 的映射,而不是端口。
标签: django subdomain django-middleware