【问题标题】:Middleman Blog: Custom layout not loadingMiddleman 博客:自定义布局未加载
【发布时间】:2015-02-14 15:22:02
【问题描述】:

在 Middleman 中,我正在尝试建立一个博客站点,使用博客的自定义布局。我的问题是主要布局正在加载,但我的文章的博客布局没有。文章文件以其简单的正文提供。

在 source/layouts/ 我有两个文件:layout.erb 和 article_layout.erb。

我的意图是在我的博客文章中使用article_layout.erb。

在 config.rb 我有以下内容:

activate :blog do |blog|
  blog.sources = "articles/{category}/{year}-{month}-{day}-{title}.html"
  blog.layout = "article_layout"
end

我还尝试将 article_layout.erb 移动到 source/articles/ 以及像这样添加 config.rb 文件:blog.layout = "layouts/article_layout"

另一种失败的方法是注释掉上述选项并通过添加以下行来配置布局:page "/articles/*", layout: "article_layout"。

到目前为止,这些方法都没有显示出差异。由于未呈现默认布局,因此如果找不到布局的路径,我预计会出现某种错误消息,但没有显示任何内容。

【问题讨论】:

    标签: ruby blogs middleman


    【解决方案1】:

    我设法用我自己的 Middleman 博客设置复制了您的问题。 文档对此并不清楚,因为 Blogging 的布局部分中有一个损坏的链接。

    您需要使用 Middleman 的嵌套布局功能并将您的自定义布局包装在:

    <% wrap_layout :layout do %>
    
    <% end %>
    

    所以你的article_layout.erb 看起来像这样:

    <% wrap_layout :layout do %>
    
     <div class="article-container"> 
       <article>
         <h2 class="article-title"><%= current_page.title %></h2>
         <%= yield %>
       </article>
     </div>
    
    <% end %>
    

    并将您的自定义布局保存在 source/layouts 文件夹中。

    这里是Nested Layouts 的文档供您参考。

    我希望这会有所帮助。

    【讨论】:

    • 谢谢。我确实看到了。我打算完全使用不同的布局,但实际上嵌套更有意义。所以我添加了包装。仍然没有为我的文章加载任何布局。我也试过这个: with_layout :article do page "/articles/*" end 即使我注释掉所有特定的布局选项,我也希望博客加载默认模板,该模板为所有其他页面加载,但那是也没有发生。我的文件中没有其他布局参考。显然我忽略了一些东西,但我不知所措。
    • 您能否发布您的config.rb 以及您的layout.erb 和article_layout.erb。如果你在 Github 上有你的项目,如果你觉得舒服,你可以链接到那个。
    • 当然,这是一个小型的个人项目。我推高了我现在拥有的并将其公开:github.com/rpbaptist/richardbaptist.nl
    • 好吧,这很尴尬,但我才意识到我的博客页面没有采用 .erb 格式。它现在工作得很好。非常感谢您的耐心和帮助。
    • 如果你用 haml 写作,你需要使用= 而不是-。所以它看起来像= wrap_layout :layout do。我想这也是 slim 的情况
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    相关资源
    最近更新 更多