在我的页面中没有上传背景图片,显示这个错误信息。
ActionController::RoutingError(没有匹配的路由[GET]“/assets/images/control_top.png”)
我该怎么做来解决这个问题?
ActionController::RoutingError(没有匹配的路由[GET]“/assets/images/control_top.png”)
我该怎么做来解决这个问题?
在生产环境中,Rails不会负责提供静态资源文件。因此,您会遇到这个错误。
这是由应用程序中config/environment/production.rb中的此设置控制的:
config.serve_static_assets = false
你可以将其设置为true
或者尝试这个
rake assets:precompile
command(编译并将图像、CSS和JS从app/assets复制到public/)。
.class
background: url('asset.png') no-repeat
正确写法(使用Sass):
.class
background: image-url('asset.png') no-repeat
更多信息,请参见此处:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets
这可能会对某些人有所帮助,我尝试了所有的答案,但忘记了做最基本的事情。清除浏览器缓存,一旦完成,就可以顺利进行 :)
rake assets:precompile
config.assets.enabled = true
我将所有图片的url都改为指向'/assets/image_without_old_image_directory_name.jpg'。
例如,我的图片原来在/public/images/xxx.jpg中。现在我将它们移动到/app/assets/images/xxx.jpg。我将img src从/images/xxx.jpg改为/assets/xxx.jpg。
最终我并不需要进行资产预编译,只需删除/public和/tmp中资产管道的所有可见方面,并且这个方法(用于开发)可以正常工作。
config.serve_static_files
用于配置是否由应用程序提供静态文件服务。 - rendonconfig.public_file_server.enabled = true
用于开启公共文件服务器。建议仅在development.rb中使用,而不是production.rb中使用,因为Web服务器(例如Apache、Nginx)应该在生产环境中提供资产服务。 - CFitzconfig.assets.enabled = true
也很重要。 - Christiano Matos