【发布时间】:2016-07-27 14:08:11
【问题描述】:
我正在尝试配置类似的东西
user2.example.com -> 加载 urls_user.py www.example.com -> 加载 urls.py
我现在面临的问题是所有内容都是通过 urls_user.py 加载的
我正在使用来自 https://django-hosts.readthedocs.io/en/latest/ 的 django-hosts
settings.py
MIDDLEWARE_CLASSES = (
'django_hosts.middleware.HostsRequestMiddleware' ,
'django.contrib.sessions.middleware.SessionMiddleware',
'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',
'django.middleware.security.SecurityMiddleware',
'user_shop.subdomainMiddleware.subdomainMiddleware',
'django_hosts.middleware.HostsResponseMiddleware'
)
ROOT_URLCONF = 'e_com.urls'
ROOT_HOSTCONF = 'e_com.hosts'
DEFAULT_HOST = "www"
hosts.py
from django.conf import settings
from django_hosts import patterns, host
host_patterns = patterns('',
host(r'www', settings.ROOT_URLCONF, name='www'),
host(r'127', settings.ROOT_URLCONF, name='127'),
host(r'(?!www)\w+', 'e_com.urls_user', name='wildcard'),
)
即使我删除了与 urls_user 相关的所有内容,它仍然会加载该文件。
我正在使用 localhost 并使用 hexxie:8000 来运行我的子域。
--------编辑-----
我在我安装的应用程序中有 django_hosts,事情是它工作了一次,直到我关闭我的服务器并重新启动它,从那时起问题一直存在到现在。
'user_shop.subdomainMiddleware.subdomainMiddleware'只是一个获取子域的脚本
class subdomainMiddleware:
def process_request(self,request):
domain_parts = request.get_host().split('.')
subdomain = "www"
if(len(domain_parts) > 2):
subdomain = domain_parts[0].lower()
request.subdomain = subdomain
如果我执行 pip freeze 这将显示
altgraph==0.10.2
bdist-mpkg==0.5.0
bonjour-py==0.3
Django==1.8.3
django-hosts==1.4
django-subdomains==2.0.4
macholib==1.5.1
matplotlib==1.3.1
modulegraph==0.10.4
mysql==0.0.1
MySQL-python==1.2.5
numpy==1.8.0rc1
Pillow==2.9.0
py2app==0.7.3
pyasn1==0.1.8
pycrypto==2.6.1
pyobjc-core==2.5.1
pyobjc-framework-Accounts==2.5.1
pyobjc-framework-AddressBook==2.5.1
pyobjc-framework-AppleScriptKit==2.5.1
pyobjc-framework-AppleScriptObjC==2.5.1
pyobjc-framework-Automator==2.5.1
pyobjc-framework-CFNetwork==2.5.1
pyobjc-framework-Cocoa==2.5.1
pyobjc-framework-Collaboration==2.5.1
pyobjc-framework-CoreData==2.5.1
pyobjc-framework-CoreLocation==2.5.1
pyobjc-framework-CoreText==2.5.1
pyobjc-framework-DictionaryServices==2.5.1
pyobjc-framework-EventKit==2.5.1
pyobjc-framework-ExceptionHandling==2.5.1
pyobjc-framework-FSEvents==2.5.1
pyobjc-framework-InputMethodKit==2.5.1
pyobjc-framework-InstallerPlugins==2.5.1
pyobjc-framework-InstantMessage==2.5.1
pyobjc-framework-LatentSemanticMapping==2.5.1
pyobjc-framework-LaunchServices==2.5.1
pyobjc-framework-Message==2.5.1
pyobjc-framework-OpenDirectory==2.5.1
pyobjc-framework-PreferencePanes==2.5.1
pyobjc-framework-PubSub==2.5.1
pyobjc-framework-QTKit==2.5.1
pyobjc-framework-Quartz==2.5.1
pyobjc-framework-ScreenSaver==2.5.1
pyobjc-framework-ScriptingBridge==2.5.1
pyobjc-framework-SearchKit==2.5.1
pyobjc-framework-ServiceManagement==2.5.1
pyobjc-framework-Social==2.5.1
pyobjc-framework-SyncServices==2.5.1
pyobjc-framework-SystemConfiguration==2.5.1
pyobjc-framework-WebKit==2.5.1
pyOpenSSL==0.13.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
scipy==0.13.0b1
six==1.4.1
Twisted==13.2.0
xattr==0.6.4
zope.interface==4.1.1
【问题讨论】:
-
在我尝试复制此内容之前,有一些快速的想法:
'django_hosts'在您的INSTALLED_APPS中吗?'user_shop.subdomainMiddleware.subdomainMiddleware'是什么?这会以某种方式干扰吗?您能否还包括pip freeze? -
@Omni5cience 感谢您的回复。我已经更新了问题。
标签: django subdomain django-urls