我必须在头部放置一个 django 标记,因此模板将呈现动态元标记服务器端。
我想做的是:
{% block metatags %}
<meta name="description" content="{{ metatags.description }}" />
<meta name="keywords" content="{{ metatags.keywords }}" />
<meta property="og:url" content="{{ metatags.og_url }}" />
<meta property="og:title" content="{{ metatags.og_title }}" />
<meta property="og:description" content="{{ metatags.og_description }}" />
<meta property="og:image" content="{{ metatags.og_image }}" />
<meta property="og:image:url" content="{{ metatags.og_image_url }}" />
<meta property="og:image:type" content="{{ metatags.og_image_type }}" />
{% endblock %}
现在,头盔内的元标记没有问题,因为它是头盔的公认元素。问题出在 {% block metatags %} 和 {% endblock %}。
编译后的页面不会有这两个,可能是因为头盔忽略了它们。我还尝试在编译页面中手动放置 {% block metatags %} 和 {% endblock %} 并且它可以工作。
我想我不能只用头盔来实现这一点,因为它会忽略我放在里面的每个无法识别的标签(脚本、元、noscript、..)。我怎么能那样做?
唯一的解决方案可能是在 gatsby 构建后调用脚本并手动添加这些脚本......有更好的解决方案吗?