获取Middleman布局文件中页面的当前路径

16

在Middleman文件中,是否可以检索当前页面的路径?例如,如果我有一个名为layout.erb的布局文件,其中包含以下内容:

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

还需要一个测试文件 index.html

Testing

然后当Middleman渲染页面时,我会得到类似于:

/index.html
Testing
2个回答

43

Middleman还提供了current_page变量。current_page.path是此资源的源路径(相对于源目录,不包括模板扩展名),current_page.url是没有目录索引的路径(因此foo/index.html变成了foo)。

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

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

来自Middleman的详细信息Middleman::Sitemap::Resource rubydoc文档。 http://rubydoc.info/github/middleman/middleman/Middleman/Sitemap/Resource


这可能是获取当前路径的最佳方式,因为它是公开和记录的。 - LandonSchropp
1
有任何想法如何获取主机名吗? - DaMainBoss
如果我们获取到端口名称,那是否有可能?我想要将测试环境的 URL 和生产环境的 URL 分开。@Nick - Eko Bayu

2
解决方案是:
<%= request.path %>

如果必须猜测,我会说当Middleman构建应用程序时,它创建了一个服务器,请求了应用程序中的页面并将响应写入文件。但是,老实说我不确定。 - LandonSchropp
@jackyalcine 它被别名为当前路径的资源对象 https://github.com/middleman/middleman/blob/dd0ee24ca3ae728b00f8987d74c360557c910946/middleman-core/lib/middleman-core/template_context.rb#L165 - David Silva Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接