没有路由匹配Rails中的资产/图像

时间:2012-06-19 07:00:26

标签: asset-pipeline

在轨道上工作时,图像不可见并出错。

Started GET "/assets/home.png" for 127.0.0.1 at 2012-06-19 12:23:24 +0530
Served asset /home.png - 404 Not Found (24ms)
ActionController::RoutingError (No route matches [GET] "/assets/home.png"):

我使用了命令

rake assets:precompile

production.rb

config.assets.compress = true
config.assets.compile = false

application.rb中

config.assets.enabled = true
config.assets.version = '1.0'

感谢您的帮助!

2 个答案:

答案 0 :(得分:8)

实际上,您无法使用/assets/home.png路径引用您的图片。 它将在开发模式下工作,但在生产中,所有资产的文件名都有指纹(请阅读http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark

这就是为什么在启用资产管道的应用程序中,您需要使用辅助方法引用所有资产。阅读本文档,了解Ruby,JS和Sass文件中可用的不同帮助程序:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

答案 1 :(得分:4)

文件请求中缺少指纹表明您正在开发中运行此指纹。我也猜测这是一个从较旧版本的Rails升级的应用程序。

任何图片都需要位于文件夹/ assets / images中才能使管道正常工作。

此外,在开发模式下,您无需预编译。

删除public / assets文件夹,删除文件夹tmp / cache / assets,然后重新启动服务器。

如果此图像位于正确的位置,则应该可以正常工作。