ActionController::RoutingError(没有路由匹配 [GET] "/assets/images

ActionController::RoutingError (No route matches [GET] "/assets/images

我正在尝试在我的 rails 应用程序中加载一些静态页面和文件(图像、css 和 javascript)以进行测试。但是没有加载图像,也没有 bootstrap 渲染。在 运行 在服务器上使用它之前(使用 rails server

,我尝试了不同的选项,如下所示在 Whosebug 上查找

之前: <img src="../../assets/images/hero-images/abyssal_underlord_sb.png">

现在: <%= image_tag("../../assets/images/hero-images/abyssal_underlord_sb.png") %>

../.. 基本上告诉我必须返回 app 目录才能访问图像文件夹,但它仍然不起作用

更新

这是我的目录树的一部分的快照,以帮助我解决这些问题。

您可以通过2种方式渲染位于assets/images内部文件夹的图像。

1 在application.rb

中添加以下内容
config.assets.paths << Rails.root.join('app', 'assets', 'hero-images')

Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
  config.assets.paths << path
end

直接访问图像

<img src="assets/hero-images/abyssal_underlord_sb.png">
<%= image_tag("abyssal_underlord_sb.png")%>

2。只需在文件名上方添加内部文件夹名称即可。

<%= image_tag("hero-images/abyssal_underlord_sb.png")%> 

参考这个linkhttps://learn.co/lessons/images-and-the-asset-pipeline