【问题标题】: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 提供的脚本何时/如何运行。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多