我正在研究Eleventy based blog and website。社交媒体共享功能(例如Facebook OpenGraph和Twitter cards)需要具有指向图片等资源的完整绝对URL。 Twitter特别拒绝图像的任何相对URL。
Eleventy是否提供本地方法来生成完整的URL?由于Eleventy是生成的静态站点,与托管的Web服务器相反,因此它无法像其他系统一样从HTTP标头获得此信息。如果Netlify提供了从JS生成URL的任何工具,则该站点将托管在Netlify上。我已经有一些任务可以用Gulp生成调整大小的图像。
目前,我只是使用自己的现场配置来在Nunjucks模板中生成URL:
{# page_twitter_image is a site root relative path to the image #}
{% if page_twitter_image %}
<meta name="twitter:image" content="{{ site_base_url }}{{ page_twitter_image }}" />
{% endif %}
据我所知(基于文档:https://www.11ty.dev/docs/data/#page-variable-contents),答案是否定的。我认为您的解决方案是有道理的。
我正在提交ER,以使其能够访问此文件。我认为它应该可以在页面数据中使用,也可以通过简码/过滤器使用。