2012-05-21 10 views
15

Ist es möglich, den aktuellen Pfad einer Seite in einer Zwischenhändlerdatei abzurufen? Zum Beispiel, wenn ich eine Layout-Datei layout.erb mit etwas wie folgt aus:Aktuellen Pfad der Seite in Middleman-Layoutdatei abrufen

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

und eine Testdatei index.html:

Testing 

dann, wenn Middleman die Seite gerendert ich so etwas bekommen würde:

/index.html 
Testing 

Antwort

29

Middleman bietet auch die current_page Variable. current_page.path ist der Quellpfad dieser Ressource (relativ zum Quellverzeichnis ohne Vorlagenerweiterungen) und current_page.url ist der Pfad ohne den Verzeichnisindex (also foo/index.html wird nur foo).

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

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

Details von Middlemans Middleman::Sitemap::Resource rubydoc. http://rubydoc.info/github/middleman/middleman/Middleman/Sitemap/Resource

+0

Dies ist wahrscheinlich der beste Weg, um den aktuellen Pfad zu bekommen, wenn man bedenkt, dass er offengelegt und dokumentiert ist. – LandonSchropp

+1

Irgendeine Idee, wie man den Hostnamen bekommt? – DaMainBoss

2

Die Lösung lautet:

<%= request.path %> 
+0

Jeder Grund, warum das funktioniert? – jackyalcine

+0

Wenn ich raten müsste, würde ich sagen, wenn Middleman die Anwendung erstellt, erstellt es einen Server, fordert die pageas in der Anwendung an und schreibt die Antworten in Dateien. Aber ich weiß es ehrlich gesagt nicht. – LandonSchropp

+0

@jackyalcine es ist Alias ​​für das Ressourcenobjekt für den aktuellen Pfad https://github.com/middleman/middleman/blob/dd0ee24ca3ae728b00f8987d74c360557c910946/middleman-core/lib/middleman-core/template_context.rb#L165 –

Verwandte Themen