2012-05-21 10 views
15

仲介者ファイル内のページの現在のパスを取得することは可能ですか?仲介者レイアウトファイルの現在のパスを取得する

<%= page.path %> 
<%= yield %> 

とテストファイルindex.html:私は、次のようなものでレイアウトファイルlayout.erb持っている場合たとえば、

Testing 

を仲介がページをレンダリングするとき、私はのようなものになるだろう

/index.html 
Testing 

答えて

29

Middlemanにもcurrent_pageという変数があります。 current_page.pathはこのリソースのソースパスです(テンプレート拡張機能を持たないソースディレクトリからの相対パス)。current_page.urlはディレクトリインデックスのないパスです(foo/index.htmlfooとなります)。

<%= current_page.path %> 
# -> index.html 

<%= current_page.url %> 
# ->/

詳細については、MiddlemanのMiddleman::Sitemap::Resource ruby​​docを参照してください。 http://rubydoc.info/github/middleman/middleman/Middleman/Sitemap/Resource

+0

これはおそらく、現在のパスが公開され、文書化されていると見なす最良の方法です。 – LandonSchropp

+1

ホスト名を取得する方法はありますか? – DaMainBoss

2

解決策は以下のとおりです。

<%= request.path %> 
+0

これはなぜ機能するのですか? – jackyalcine

+0

私が推測しなければならないのは、Middlemanがアプリケーションを構築してサーバーを作成し、アプリケーションのページを要求し、その応答をファイルに書き込むと言うでしょう。しかし、私は正直に分かりません。 – LandonSchropp

+0

@jackyalcine現在のパスのリソースオブジェクトにエイリアスされています。https://github.com/middleman/middleman/blob/dd0ee24ca3ae728b00f8987d74c360557c910946/middleman-core/lib/middleman-core/template_context.rb#L165 –

関連する問題