【问题标题】:Asset pipeline with rails/sprockets & bower带有导轨/链轮和凉亭的资产管道
【发布时间】:2015-01-19 06:56:09
【问题描述】:

我正在使用 rails/sprockets 来管理我的资产管道和 bower 来管理我的资产。

当我运行以下代码来预编译我的资产时,vendor/assets/bower_components 中的所有资产都会被缩小。

RAILS_ENV=production rake assets:precompile

是否可以仅将 application.js 和 application.css 文件中指定的文件与图片和字体一起缩小和连接?

在 application.rb 中,我有以下几行:

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.ico)
config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components', 'bootstrap-sass-official', 'assets', 'fonts')
config.assets.precompile << %r(.*.(?:eot|svg|ttf|woff)$)
config.assets.precompile = ['*.js', '*.css', '*.css.erb']

最大的问题是 sprockets 尝试预编译所有资产,包括我不使用的 bootstrap-sass-official 并且这样做我得到以下错误:

 Sass::SyntaxError: Undefined variable: "$alert-padding".
 (/vendor/assets/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/_alerts.scss:10)

我什至没有更改 _alerts.scss 文件。

【问题讨论】:

  • 使用官方的 bootstrap sass gem 不是一个可行的选择吗?

标签: ruby-on-rails twitter-bootstrap asset-pipeline bower sprockets


【解决方案1】:
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.ico)
config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components', 'bootstrap-sass-official', 'assets', 'fonts')
config.assets.precompile << %r(.*.(?:eot|svg|ttf|woff)$)
config.assets.precompile = ['*.js', '*.css', '*.css.erb']

最后一行覆盖了前两行,将图像资产添加到预编译列表,而是编译每个 javascript 和 css 文件,其中包括引导 gem 中的文件。

您需要通过显式添加需要预编译的文件来限制该列表。另外,将其设为 += 而不是 =。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 2016-04-30
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2013-12-10
    • 2012-05-11
    相关资源
    最近更新 更多