Rails 4 中去掉了预编译 undigested assets 的功能(之前有一个 rake task 是 assets:precompile:nondigest)。有谁知道如何生成不带 finger print(即那串 MD5 hash)的 assets 吗?
assets:precompile:nondigest
Rails 3.2 production.rb 可以设置 digest 那个呀 你是说 4 没这个配置了么?
digest 的选项还在,但最终会去掉,改由 assets.compile 来指定。我遇到的问题是,我要用 digest,但同时想保留一份不带 finger print 的版本。
算了,自己写个 task 去读 manifest.json 然后 link 到最新的那份 css:
namespace :assets do desc "link nondigest application.css" task :link_nondigest => :environment do manifest = Dir.glob("#{Rails.root}/public/assets/manifest-*.json").first nondigest = "application.css" json = JSON.parse(open(manifest).read) css = json["files"].select { |_, f| f["logical_path"] == nondigest } .sort_by { |_, v| Time.parse(v["mtime"]) } .last.first `rm #{Rails.root}/public/assets/#{nondigest}` `ln -s #{Rails.root}/public/assets/#{css} #{Rails.root}/public/assets/#{nondigest}` end end