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をハードコーディングしますが、変更が簡単な1か所のみです。または、javascriptを使用して、クライアント側で適切に設定します。

ピュアジキル/リキッド

次のような行を追加します

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が提供するスクリプトがいつ/どのように実行されるかによって、いくつかのトリック(Facebook JSの読み込みを遅らせるなど)が必要になる場合があります。)

于 2012-04-11T06:11:25.100 に答える