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

时间:2018-05-05 18:43:48

标签: ruby-on-rails ruby rake

我试图在我的rails应用程序中加载一些静态页面和文件(图像,css和javascripts)进行测试。但是没有加载图像也没有加载引导程序。我在服务器上运行之前尝试了不同的选项,如下面的Stackoverflow所示(rails server

  • 使用命令rake assets:precompile并使用' rake tmp:clear'或手动删除tmp目录中的内容

  • 更改图片代码的HTML语法,以在资源目录../../assets/images/hero-images/*.jpg下打开不同的图片,如:

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

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

../..基本上告诉我,我必须返回app目录才能访问images文件夹,但它仍然无法正常工作

  • 由于生产环境设置的原因,我应该在设置上运行它,尝试RAILS_ENV=production bundle exec rake assets:precompile,但也没有运气。

更新

  • 最后,尝试修复config目录中的配置。我在应用的config.serve_static_assets = true文件中有这一行development.rb(甚至尝试rake assets:precompiles但仍然没有运气。

这是我的目录树部分的快照,用于帮助我解决这些问题。 enter image description here

1 个答案:

答案 0 :(得分:3)

您可以通过2种方式渲染位于application.rb内部文件夹的图像。

1在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")%>

直接访问图像

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

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

DatabaseReference

请参阅此链接https://learn.co/lessons/images-and-the-asset-pipeline