我喜欢让我的 Assets 井井有条,但是,我遇到了预编译问题。它没有拾取子目录。以下是路径:
assets
>fonts
>images
>>backgrounds
>>home
>>icons
一切都适用于开发,但生产 = 不行。在我的生产环境中,我已经这样做了:
config.assets.enabled = true
config.assets.compile = true
config.assets.precompile += ['*.js', '*.ico', '*.png', '*.jpg']
config.assets.initialize_on_precompile = true
我目前正在我的 application.rb 文件中运行以下函数:
# Add All Asset Pipeline Sub Folders
Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
config.assets.paths << path
end
这就是我一直在做的事情,不,运气不佳。我希望用几行代码动态地获取所有创建/更改的目录等,这样我就不必一个一个地添加它们......
# Add All Asset Pipeline Sub Folders
Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
config.assets.paths << path
config.assets.precompile += ['#{path}/*']
end
想法?
更新的解决方案:
我最终在我的生产 rb 中使用了以下内容:
config.assets.precompile += ['*.js', '*.ico', '*.png', '*.jpg']
config.assets.precompile += [ Dir["#{Rails.root}/app/assets/images/**/*"].reject {|fn| File.directory?(fn) } ]
最佳答案
# Add All Asset Pipeline Sub Folders
Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
.. # seems you include /assets/images sub directories, expand the path
ruby 命令:
Dir.glob("#{Rails.root}/app/assets/images/**/")
返回目录,位于
/images
目录。我假设您只推送到预编译器图像 Assets 。有道理吗?将其替换为:
Dir.glob("#{Rails.root}/app/assets/**/")
关于ruby-on-rails - Assets 管道预编译所有 Assets 文件夹子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432460/