背景图像未上传到我的视图页面中。显示此错误。
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
你可以设置为真
或试试这个
rake assets:precompile
命令(从 app/assets 编译并复制图像、css 和 js 到 public/.
如果您升级到新版本的 Rails(想到 Rails 4 和 Rails 3.2.16),突然开始看到这个错误,很可能您的样式表指向的是非指纹、非缓存版本的文件。如果您正在使用资产管道,为了利用它,您需要使用指向文件的指纹缓存版本的新帮助程序。为此,您需要将 erb 嵌入到您的 css 文件中,或者使用 sass。
不正确(使用 sass):
.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
我继续使用资产管道,但必须更改我使用的硬编码 url,如下所示(对于我的开发环境):
我更新了我的 /config/application.rb 以使用资产管道:
config.assets.enabled = true
我将所有图片网址更改为指向“/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 中资产管道的所有可见方面,它就可以正常工作(用于开发)。