如何在我的项目中指定样式表被编译/加载?

时间:2018-11-04 21:56:31

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 asset-pipeline

我的文件夹theme/skins/default.css中有一个文件,另外一个文件名为/style.css。我希望将default.css中的样式之后的application.css中的样式添加到我的style.css中。除了手动复制外,我该怎么做?基本上,theme/skins/文件夹中的所有样式表都希望在application.css之后添加到style.css文件中。

换句话说,我希望theme/skins/default.css中的样式覆盖存在的style.css中的文件。

我该如何在Rails 3.2资产管道的约束范围内做到这一点?

编辑1

请注意,我已经尝试过:

/*
 *
 *= require_tree .
 *= require "theme/skins/default"
 *= require_self
 */

@import "bootstrap";
@import "font-awesome";

这并不能以正确的顺序呈现它。

当我在页面上执行视图源时,将看到以下内容:

<link href="/assets/theme/skins/default.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/theme/slick.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/theme/style.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />

1 个答案:

答案 0 :(得分:0)

资产管道编译器遵守清单上文件所需的顺序。问题是您require_tree .高于一切(因此,您的特定要求会被忽略,因为之前是必需的)。

尝试一下:

/*
 *= require 'theme/skins/style'
 *= require "theme/skins/default"
 *= require_tree . (this will ignore files already required)
 *= require_self
 */

@import "bootstrap";
@import "font-awesome";

编辑:添加到清单文档https://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives

的链接