2016-04-30 5 views
0

私が取り組んでいるFoundationサイトでは、ナビゲーション部分のドロップダウンリストがあり、src/data内の複数のYMLファイルからのリンクを設定します)。各エントリは次のようなものになります。基礎:サブディレクトリ内のページで動作しないリンクのルート変数

link: 
    text: "Example Link" 
    url: "beta/page2.html" 
    external: false 

を次のように各メニュー項目を生成部分の一部は次のとおりです。

{{#each category}} 
    <li><a href="{{#unless external}}{{root}}{{/unless}}{{url}}" {{#if external}}target="_blank"{{/if}}>{{text}}</a></li> 
{{/each}} 

外部の場合、リンクは、サイトのルートからの相対であるためには目標がありますexternalがtrueの場合はfalseであり、そのまま使用されます(新しいタブを開きます)。

問題は、移動先のページがサブディレクトリにあるときに内部リンクが正しく生成されないように見えることです。たとえば、私がexample.com/alpha/page1.htmlにいる場合、上のメニューリンクはexample.com/beta/page2.htmlの代わりにexample.com/alpha/beta/page2.htmlを指しています。

ページのリンクを適切に生成するためにコードを変更するにはどうすればよいですか?

答えて

0

私は問題を把握しました。 {{#each}}ブロック内では、ハンドルコンテキストが変更され、{{root}}のような変数は親コンテキストを介してのみアクセス可能です。 {{root}}{{../root}}に置き換えることで問題を修正できます。

Handlebars documentationから:

../は、ブロックを呼び出しているヘルパーに基づいて変わるために解決されると正確な値。 ../を使用するのは、コンテキストが変更された場合にのみ必要なので、eachのようなヘルパーの子供は、ifのようなヘルパーの子供は../の子供が使用する必要がありません。

関連する問題