python - Wagtail:为 Multisite 中的每个应用程序设置一个专用的静态文件夹
问题描述
我正在使用 Multisite 在单个 Wagtail 构建上管理多个网站和自定义管理员。目前,我的静态文件夹设置如下:
设置.py:
INSTALLED_APPS = [
'websites.sua_umn_edu',
'admin_sua_umn_edu',
...
]
STATIC_URL = '/static/'
有没有办法STATIC_URL
动态设置,所以每个应用程序在自己的文件夹中寻找一个静态目录?
解决方案
request.site
也许是根据您的需要创建路径的模板标签?我为每个站点样式表创建了一个模板标签:
@register.inclusion_tag('website/tags/stylesheet.html', takes_context=True)
def stylesheet(context):
slug = slugify(context['request'].site)
return {
'path': '/css/{}/main.css'.format(slug)
}
网站/标签/stylesheet.html
{% load static %}
<link rel="stylesheet" href="{% static path %}">
这个模板标签可以在你的 base.html 中使用
{% stylesheet %}
也许样式表对于您的网站来说太有限了,但这个概念可以概括。这是{% site_static '...' %}
模板标签的伪代码。它查找当前站点并调用普通的静态模板标签。
from django.templatetags.static import do_static
@register.tag('site_static', takes_context=True)
def site_static(context, parser, token)
site_slug = slugify(context['request'].site)
token = '{}/{}'.format(site_slug, token)
return do_static(parser, token)
推荐阅读
- kubernetes - 配置 gsutil 以在 pod 内使用 kubernetes 服务帐户凭据
- ios - Swift - 删除所有设备上所有已发送的通知
- git - 将 PR 变基为 master 之上的单个提交
- c++ - 无法访问地址 0xc8 的内存
- algorithm - 统计/算法:我如何将每周图表与其自己的历史进行比较,以查看过去何时几乎相同?
- javascript - js 代码如何使用终端获取输入文件?
- heroku - Heroku 上启用 JVM 指标的 Thorntail 应用程序
- c++ - 如何指定我要使用的重载函数
- php - nginx 位置块仅在 conf 文件中
- android - 带有左右填充的viewpager内的Android捏到缩放布局