Rails 4 Asset Pipeline:使用和不使用指纹编译

Rails 4改变了资产的指纹识别方式(用于浏览器缓存清除):

Old Strategy: application.css?12345 Rails 3.2: application-12345.css and application.css Rails 4.0: application-12345.css 

虽然这很有道理,但如果样式表被其他服务(在我们的案例中为Zendesk)使用则会出现问题。 这个外部站点需要来自Rails应用程序的CSS,但它不知道指纹(又名:摘要)。

有没有办法编译带有和没有指纹的所有资产? 或者也许是另一种方法来解决这个问题?

我写了一个rake任务来获取Rails 3.2的非指纹文件:

 namespace :assets do desc "Create symlinks without cache busting digest" task :create_symlinks_without_digest => :environment do Dir.glob(Rails.root.join('public', 'assets', '**', '*')).each do |item| if File.file?(item) && item.match(/-[a-f0-9]{32}/) FileUtils.ln_s Pathname(item).basename, item.sub(/-[a-f0-9]{32}/, '') end end end end