2

我已按照以下非常详尽的说明将 sprockets/asset 管道添加到我正在处理的旧版 Rails 2.3.18 应用程序中:

http://jaredonline.github.io/blog/2012/05/16/sprockets-2-with-rails-2-dot-3/

我有一个悬而未决的问题——在我的vendor/assets/stylesheets/bootstrap目录中,我已经从 sass-bootstrap gem 复制了所有的 .scss 文件。

当我运行上述 URL 中提供的 rake 任务时rake assets:precompile,它会出现以下错误:https ://github.com/thomas-mcdonald/bootstrap-sass/issues/378

问题是 sprockets 正在尝试编译一些部分 .scss 文件,这些文件应该只编译到主 application.css 文件中。

由于我无法更改config.assets.precompile2.3.18 中的 Rails 配置,您如何建议我告诉 sprockets 忽略单独编译这些部分 .scss 文件?

4

2 回答 2

1

@joris 提供了很好的见解,但在您回复时我已经想通了!

在内部assets.rake#internal_precompile,将最后一行更改为:

manifest.compile [ Proc.new { |path| !%w(.js .css).include?(File.extname(path)) }, /application.(css|js)$/ ]

在这个页面上找到了这个答案:http: //guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

于 2013-07-19T07:13:24.557 回答
0

查看 Sprockets 2 中的代码,我看到 manifest.compile 接受一个参数。浏览代码看起来参数是一种可以在资产上使用的过滤器。我没有尝试或测试任何东西,但也许它给了你一个起点。

于 2013-07-18T22:33:29.177 回答