我在生产中遇到了一些资产问题:缺少资产,编译到错误文件中的东西(“/admin”的javascript被编译到前端代码等等)。大多数资产来自引擎。我想调试和优化这个。
为此,我需要在我的开发环境中进行预编译、服务和失败,就像在生产环境中一样。
我在我的config/development.rb
:
config.serve_static_assets = true
config.assets.precompile += %w( store/all.js store/all.css admin/all.js admin/all.css ) # @TODO: clean up, and optimize.
config.assets.compile = false
运行这个rake RAILS_GROUPS=assets RAILS_ENV=development assets:precompile
给我所有的资产和manifest.yml
in public/
.
但随后服务器失败:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Spree/home#index
Showing /xxxx/app/views/spree/shared/_head.html.erb where line #13 raised:
favicon.ico isn't precompiled
favicon.ico 没有预编译。但它是!它在那里,在公共目录中manifest.yml
,我可以使用浏览器(或 wget)获取它:http://localhost:3000/assets/favicon.ico。
注意Favicon 只是调用的第一个资产。如果我去掉 favicon,问题只会出现在下一个资产上,即“all.js”,或者,当它被删除时,“all.css”等等。我可以剥离它直到“footer_bg.png”,然后它会在那里失败。再说一遍:问题不在于网站图标,而在于开发环境根本看不到预编译的资产。
还需要什么才能获得类似于生产的开发资产管道?
编辑:更明确的解释是网站图标不是问题,只是一种症状。