我尝试将 facebook 共享链接添加到 jekyll 引导页面,但是当添加 FB 将在我使用的共享中使用的 href 时{{ HOME_PATH }}
。然而,这原来是 / 的相对路径(FB 不理解)。有谁知道如何获得绝对路径而无需对其进行硬编码?
给出 / 的代码
<a name="fb_share" type="button"
share_url="{{ HOME_PATH }}">Share this event on Facebook</a>
我尝试将 facebook 共享链接添加到 jekyll 引导页面,但是当添加 FB 将在我使用的共享中使用的 href 时{{ HOME_PATH }}
。然而,这原来是 / 的相对路径(FB 不理解)。有谁知道如何获得绝对路径而无需对其进行硬编码?
给出 / 的代码
<a name="fb_share" type="button"
share_url="{{ HOME_PATH }}">Share this event on Facebook</a>
不幸的是,不是通过 Jekyll。Jekyll 是一个静态站点生成器,当它运行时,它将整个站点生成为 HTML/CSS/etc 页面,没有服务器端的动态内容。
但是,有一些解决方案:将 url 硬编码,但只在一个地方,因此很容易更改;或者,使用 javascript 在客户端适当地设置它。
添加一行
host: example.com
to _config.yml
,然后像这样引用它
<a name="fb_share" type="button"
share_url="http://{{ site.host }}/blah">Share this event on Facebook</a>
如果您使用 jQuery,请将其放在您的启动脚本中的某个位置(显然您可以不使用 jQuery 来执行此操作,但这说明了该技术):
$('[name=fb_share]').each(function() {
var $this = $(this);
$this.attr('share_url',
$this.attr('share_url').replace('HOME_PATH',
document.location.host));
}
并有这样的页面
<a name="fb_share" type="button"
share_url="http://HOME_PATH/blah">Share this event on Facebook</a>
(JS 解决方案可能需要一些技巧(例如延迟加载 Facebook JS),具体取决于 Facebook 提供的脚本何时/如何运行。)