rake资产:预编译:在Rails 4中没有摘要 [英] rake assets:precompile:nodigest in Rails 4
问题描述
在Rails 3中有一个rake asset:precompile:nodigest任务,它正在编译资产并在/public/assets目录中不包含摘要部分的情况下写入它们.在Rails 4中,已将其删除,并且默认情况下,所有资产仅使用摘要进行预编译.由于各种原因,我还需要某些资产的非消化版本.有什么简单的方法可以恢复以前的行为?
In Rails 3 there was a rake assets:precompile:nodigest task which was compiling assets and writing them without the digest part in /public/assets directory. In Rails 4 this has been removed, and by default all assets are precompiled with digest only. For various reasons I need also non-digested version of some of the assets. Is there any easy way to enable back the old behavior?
推荐答案
Rails 4.0.0中使用的sprockets-rails
版本不再支持非消化性资产.
The version of sprockets-rails
used in Rails 4.0.0 no longer supports non-digest assets.
仅编译摘要文件名.静态的非消化性资产应仅公开存在
Only compiles digest filenames. Static non-digest assets should simply live in public
因此,任何需要静态的资产都可以手动放入public
文件夹中.如果您需要复制编译后的资产(例如SCSS文件等),此rake任务可能会有所帮助(源):
So any assets that need to be static can be manually put into your public
folder. If you need to copy compiled assets such as SCSS files, etc., this rake task may help (source):
task non_digested: :environment do
assets = Dir.glob(File.join(Rails.root, 'public/assets/**/*'))
regex = /(-{1}[a-z0-9]{32}*\.{1}){1}/
assets.each do |file|
next if File.directory?(file) || file !~ regex
source = file.split('/')
source.push(source.pop.gsub(regex, '.'))
non_digested = File.join(source)
FileUtils.cp(file, non_digested)
end
end
这篇关于rake资产:预编译:在Rails 4中没有摘要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!