Middleman博客 - 如何确保article.path转换为绝对路径?

时间:2014-12-13 16:29:04

标签: ruby blogs middleman

我希望有人可以提供帮助 -

在我的Middleman项目中,我希望博客文章位于/source/内的子目录中(例如'/ source / webdev / blog /)。 我按照说明进行了操作,混淆了(我是Middleman的新手和一个完整的Ruby新手)并在调用时显示了链接:article.path 但是 - 无论我在config.rb中设置什么,链接都显示为相对URL。

我已禁用:relative_assets(似乎无论如何都没有任何区别),而且我没有使用'directory_indexes'。任何帮助都是巨大的!

我的config.rb看起来像这样:

activate :blog do |blog|
  # set options on blog
  blog.permalink = "/webdev/blog/{year}/{title}.html"    # but article.path ends up relative!
  blog.sources = "/webdev/blog/{year}/{title}.html"   
end

所以我的博客文章建立在/webdev/blog/2014/test-article.html之上,这就是我想要的。

部分我希望在网站的任何地方使用,而不仅仅是主页:

<ul>
     <% blog.articles.each do |article| %>
       <li>
         <%= link_to article.title, article.path %>
       </li>
     <% end %>
</ul>

这给了我一个链接列表,如预期的那样,但是有相对的URL - 也就是说,当链接列表在/webdev/的页面上时,它们会将我带到/webdev/webdev/blog/2014/some-article.html grrrr。 ..

我可能做错了什么?我错过了哪些选项?

感谢您的期待

2 个答案:

答案 0 :(得分:0)

嗯,这不是我想要的答案,但我已经设法修复了#39;现在的问题 - 不是很优雅,我会承认(我提到过我不会说Ruby吗?)。

在经历了一些绝望的混乱之后,我实际上向article.path添加了一个正斜杠:

= link_to article.title, '/'+ article.path

..它有效。

我现在就这样做。

我仍然想知道这个小问题是否真的有解决方案......

答案 1 :(得分:0)

以下配置需要添加到config.rb

activate :blog do |blog|
 blog.prefix = "webdev/blog"
end

然后,您的博客帖子应该在您想要的位置生成。