将子目录添加到Rails资产

时间:2016-05-05 02:32:44

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

我正在尝试将Bootstrap框架集成到Rails项目中。该框架附带了许多我想使用的html模板。每个模板都有几个指向资产(css,images,js)的链接,这些链接的名称类似于:

href="assets/css/stylesheet.css"

通过将框架的文件包含在Rails vendor/assets文件夹中,如果我将它们全部重命名为

,我可以访问所有这些资源
href="assets/stylesheet.css"

或者使用Rails助手,但我不想为每一个资产都这样做,因为我宁愿尽可能多地保留框架的更新等等,除此之外会非常讨厌处理。

有没有办法让Rails按照当前的方式访问这些文件?

(我知道,例如Laravel Elixir可以这样做。)

1 个答案:

答案 0 :(得分:1)

此处的标准过程是在application.css或同等文件中添加对这些内容的引用。该主文件中通常有一个注释如下:

/*
 *= require_tree .
 *= require_self
*/

您可以手动将其他文件添加到该文件中,或者只是将资产放入其中,以便资产管道正确地将其保存起来。

这样做意味着当你将它们推广到生产环境时,它们都会被打包到同一个可分发的CSS文件中。

如果您确实想要单独编译,无论出于何种原因需要更改config/initializers/assets.rb并添加以下内容:

Rails.application.config.assets.precompile += %w[
  assets/stylesheet.css
]

这将强制编译另一个不相关的资产。