【问题标题】:Setting up local django environment for multiple domains为多个域设置本地 django 环境
【发布时间】: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


【解决方案1】:

试试这个:

0.0.0.0 payments.test.com 
0.0.0.0 rampup.test.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多