如何在没有特定子文件夹的情况下预编译资产?

时间:2015-10-13 16:06:37

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

如何在没有子文件夹的情况下预编译资产?

示例,我的资产就是这样:

app/assets
    /fonts
    /images
        sprite.png
        /sprite
            icon1.png
            icon2.png
            ...
            iconX.png
    /stylesheets
    /javascripts

我如何配置资产以在imagem中没有文件夹/sprite进行预编译?

1 个答案:

答案 0 :(得分:2)

一年前,这对我有用。我不再这样做,但我不知道它为什么不能继续工作。把它放到config / application.rb(或config / initializers / assets.rb)中:

config.assets.precompile = [
  lambda do |filename, path|
    path =~ /app\/assets/ && 
    !%w(.js .css).include?(File.extname(filename)) &&
    path !~ %r{app/assets/images/sprite/}
  end,
  /(?:\/|\\|\A)application\.(css|js)$/
]

您可能希望更新上述内容,以便更好地匹配以下来源中的内容。看起来它有点变化,但这应该可以让你到达你需要去的地方。

请参阅https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/railtie.rb#L61