我的文件结构是这样的
app
assets
bookshelf
assets
my_image.jpg
images
standard_image.png
在我的 css.scss 文件中,这两个都在开发中工作,但在生产中不起作用。
#some_div {
background: url("standard_image.png")
}
#some_div {
background: url("assets/my_image.jpg")
}
我已经完成了 RAILS_ENV=production rake assets:clean assets:precompile
。我已经删除了我的 tmp/cache
。
我觉得这可能是配置问题。我错过了什么?
我知道图片在服务器上。我得到了摘要文件名并将其放入具有生产根地址的 url 中。
当我尝试使用
background: asset-url("assets/my_image.jpg", image)
我明白了
Sprockets::Rails::Helper::AssetFilteredError at /books
Asset filtered out and will not be served: add
Rails.application.config.assets.precompile += %w( assets/bookshelf_skin02_top_bg.jpg )
toconfig/initializers/assets.rb
and restart your server
显然,我不想在配置中添加每个 Assets 文件。
最佳答案
我创建了 /config/initializers/asset.rb
并将相关的文件扩展名放在正则表达式中。
我相信这是可行的,因为这会告诉 Assets 管道在 lib 或 vendor 中预编译所有这些文件类型,这在 rails 4 中不会自动完成。
# Images
Rails.application.config.assets.precompile << /\.(?:png|jpg|jpeg|gif)\z/
# Fonts
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
关于css - 来自 CSS 的 Rails 4 Assets 或图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26696302/