我喜欢保持我的资产高度组织,但是,我遇到了预编译的问题。它没有拿起子目录。以下是路径:
assets
>fonts
>images
>>backgrounds
>>home
>>icons
一切都适用于dev,但prod =不行。在我的生产环境中,我已经做过:
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) } ]
答案 0 :(得分:3)
# 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/**/")
返回位于
内的目录/图像
目录。我假设您只推送预编译器图像资产。有意义吗?替换为:
Dir.glob("#{Rails.root}/app/assets/**/")