【问题标题】:How to get Absolute Path of Jekyll Bootstrap Page如何获取 Jekyll Bootstrap 页面的绝对路径
【发布时间】:2012-04-11 05:52:10
【问题描述】:
我尝试将 Facebook 分享链接添加到 jekyll 引导页面,但是在添加 FB 将在分享中使用的 href 时,我使用了 {{ HOME_PATH }}。然而,这原来是 / 的相对路径(FB 不理解)。有谁知道如何获得绝对路径而无需硬编码?
给出/的代码
<a name="fb_share" type="button"
share_url="{{ HOME_PATH }}">Share this event on Facebook</a>
【问题讨论】:
标签:
twitter-bootstrap
jekyll
liquid
【解决方案1】:
不幸的是,不是通过 Jekyll。 Jekyll 是一个静态站点生成器,当它运行时,它将整个站点生成为 HTML/CSS/etc 页面,没有服务器端的动态内容。
但是,有一些解决方案:对 url 进行硬编码,但只在一个地方,以便于更改;或者,使用 javascript 在客户端适当地设置它。
纯 Jekyll/液体
加一行
host: example.com
到_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 提供的脚本何时/如何运行。)