6

我尝试将 facebook 共享链接添加到 jekyll 引导页面,但是当添加 FB 将在我使用的共享中使用的 href 时{{ HOME_PATH }}。然而,这原来是 / 的相对路径(FB 不理解)。有谁知道如何获得绝对路径而无需对其进行硬编码?

给出 / 的代码

<a name="fb_share" type="button"
           share_url="{{ HOME_PATH }}">Share this event on Facebook</a>
4

1 回答 1

6

不幸的是,不是通过 Jekyll。Jekyll 是一个静态站点生成器,当它运行时,它将整个站点生成为 HTML/CSS/etc 页面,没有服务器端的动态内容。

但是,有一些解决方案:将 url 硬编码,但只在一个地方,因此很容易更改;或者,使用 javascript 在客户端适当地设置它。

纯 Jekyll/液体

添加一行

host: example.com

to _config.yml,然后像这样引用它

<a name="fb_share" type="button"
           share_url="http://{{ site.host }}/blah">Share this event on Facebook</a>

Javascript

如果您使用 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 提供的脚本何时/如何运行。)

于 2012-04-11T06:11:25.100 回答