如何使用 Django 设置子域?
How to set subdomains with django?
我已经在 pythonanywhere.com 上部署了我的站点,现在我想在某些页面上配置子域,我想知道我在使用 django-subdomains 包时做错了什么?
我的代码如下所示:
settings.py :
... (already installed 'subdomains' in INSTALLED_APPS)
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'subdomains.middleware.SubdomainURLRoutingMiddleware', #before CommonMiddleware
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'site.urls'
SUBDOMAIN_URLCONFS = {
None: 'site.urls',
'www': 'site.urls',
'web': 'pages.urls.web',
'account': 'site.urls.login',
}
SITE_ID = 1
...
site/urls :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^accounts/login/$', auth_views.login, name='login'),
url(r'^', include('pages.urls')),
url(r'^accounts/', include('utilisateur.urls')),
] ...
pages/urls :
urlpatterns = [
...
url(r'^$', views.index, name="index"),
url(r'^web/$', views.web, name="web"),
...
]
当我键入 web.site.ch/web/
时,找不到地址。 www.site.ch/web/
仍然存在,但它应该是 web.site.ch/web/
,accounts.site.ch/...
也是如此,为什么不存在?我应该为我的 pythonanywhere 服务器设置一个 DNS 吗?
要将网络请求发送到网络应用程序,您需要两件事:
- 地址的 DNS 条目
- PythonAnywhere 上的一个网络应用程序,其名称与 DNS 条目相匹配
django-subdomains 不会做任何一个。
我已经在 pythonanywhere.com 上部署了我的站点,现在我想在某些页面上配置子域,我想知道我在使用 django-subdomains 包时做错了什么?
我的代码如下所示:
settings.py :
... (already installed 'subdomains' in INSTALLED_APPS)
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'subdomains.middleware.SubdomainURLRoutingMiddleware', #before CommonMiddleware
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'site.urls'
SUBDOMAIN_URLCONFS = {
None: 'site.urls',
'www': 'site.urls',
'web': 'pages.urls.web',
'account': 'site.urls.login',
}
SITE_ID = 1
...
site/urls :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^accounts/login/$', auth_views.login, name='login'),
url(r'^', include('pages.urls')),
url(r'^accounts/', include('utilisateur.urls')),
] ...
pages/urls :
urlpatterns = [
...
url(r'^$', views.index, name="index"),
url(r'^web/$', views.web, name="web"),
...
]
当我键入 web.site.ch/web/
时,找不到地址。 www.site.ch/web/
仍然存在,但它应该是 web.site.ch/web/
,accounts.site.ch/...
也是如此,为什么不存在?我应该为我的 pythonanywhere 服务器设置一个 DNS 吗?
要将网络请求发送到网络应用程序,您需要两件事:
- 地址的 DNS 条目
- PythonAnywhere 上的一个网络应用程序,其名称与 DNS 条目相匹配
django-subdomains 不会做任何一个。