覆盖RefineryCMS中的布局

时间:2014-08-10 11:24:29

标签: html css ruby-on-rails refinerycms refinery

我刚刚开始正常使用ruby on rails一周,现在我已经开始使用RefineryCMS了,我按照官方指南创建了一个演示应用程序并且稍微了解了界面和CMS本身,现在我正在尝试使用RefineryCMS创建一个合适的站点。我想要做的第一件事就是更改默认主页的外观,因此我覆盖它并添加了我自己的HTML并替换了在某种程度上工作正常的默认布局。现在问题是我的样式表与我的HTML相关联,因为我是这个CMS的新手我无法找到正确链接我的样式表/覆盖与主页关联的样式表的方法。我已经按照官方文档,但无法理解如何覆盖样式表,我也遵循其他各种链接。

有人可以指导我一个教程,其中有关于如何做到这一点的逐步解释,或者甚至更好的逐步详细教程,像我这样的新手开始使用RefineryCMS,我花了几个小时但仍然找到了正确的方式,也许我一直在寻找或搜索正确的问题,因为我是这个CMS的新手,即“如何正确地将我在refryryCMS中重写的HTML链接到相应的样式表以及相应的图像和javascript文件”

我真的很感激能让我前进的任何帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

感谢您使用Refinery。有两种方法可以做到这一点,但实际上第一种方法是我的偏好。

使用CSS选择器的简单和推荐方法:

首先,查看getting started guide's section on "styling views"

现在,只需为主页创建一个资产文件,我们就称之为app/assets/stylesheets/home.css.scss。为此,我们可以在以下ID选择器下添加嵌套样式。我已添加background: red;,以便您可以立即看到结果:

body#home-page {
  background: red;
}

这是我建议为模板添加CSS的方式。

对于需要额外资产并添加到预编译列表的非推荐的复杂方法:

首先,请参阅overriding views guide

现在,使用您将拥有的refinery / pages / home.html.erb模板,您可以链接到样式表:

<% content_for :stylesheets, stylesheet_link_tag('home') %>

现在应该在页面的<head>部分链接样式表,您应该能够通过创建app/assets/stylesheets/home.css.scss文件并在其中应用它来添加与主页相关的CSS方式作为第一部分:

body#home-page {
  background: red;
}

请注意,因为它与清单文件application.css位于同一目录中,所以它也将自动包含在所有模板中,因此这更复杂。它还要求您添加到config/application.rb中的预编译列表:

config.assets.precompile += %w(home.css)