Wagtail 中的通配符子域

wildcard subdomains in Wagtail

如何在 Wagtail 中创建子域?

我正在查看 https://github.com/tkaemming/django-subdomains,但这使用了 Django Site 框架。

我试过更换

from django.contrib.sites.models import Site

from wagtail.wagtailcore.models import Site

然而鹡鸰没有属性'get_current'

我能做什么?这里有解决办法吗?

对于通配符子域,您必须配置 Web 服务器(nginx、apache 等)。对于 NGINX,您必须添加

server {
....
server_name *.mydomain.com;
....
}

对于 Apache

ServerAlias *.example.com

在你的你的-site.com.conf文件中。

我找到了答案,我使用 django 1.11 和 wagtail 1.10

和 django-subdomain 2.1.0

目前 django-subdomain 不支持 django 1.10>= 所以我们需要 更新中间件以与 Django 1.10 兼容

我只是改变

class SubdomainMiddleware(MiddlewareMixin):

在 middleware.py 到

try:
   from django.utils.deprecation import MiddlewareMixin
except ImportError:
   MiddlewareMixin = object

class SubdomainMiddleware(MiddlewareMixin):

django-subdomain 使用 django-site 但 wagtail 使用 wagtail-site 所以我更改 utils.py 文件

来自

def current_site_domain():
    from django.contrib.sites.models import Site
    domain = Site.objects.get_current().domain

def current_site_domain():
    try :
        from wagtail.wagtailcore.models import Site
        domain = Site.objects.get(is_default_site=True).hostname
    except:
        domain = "127.0.0.1"

您可以通过多种方式获取网站域名

现在 django-subdomain 与 wagtail 一起工作 只需使用 http://django-subdomains.readthedocs.io/en/latest/ 进行配置

对不起我的英语很烂