Ruby on rails Ruby on Rails应用程序的动态页面中未加载图像

Ruby on rails Ruby on Rails应用程序的动态页面中未加载图像,ruby-on-rails,ruby-on-rails-5.1,Ruby On Rails,Ruby On Rails 5.1,我已经为我的rails项目完成了资产管道,一切都很好,除了在DynamicPosts页面上,比如http://localhost:3000/posts/2,其中不加载图像。在其他地方它都很好用 在控制台中,我遇到以下错误: ActionController::RoutingError(没有与[GET]匹配的路由) “/posts/assets/logo.png”) 但是我在image标签中使用了src=“assets/m1.jpg,但是在控制台错误中,链接是不同的 我遗漏了什么?不以/开头的链接

我已经为我的rails项目完成了资产管道,一切都很好,除了在DynamicPosts页面上,比如http://localhost:3000/posts/2,其中不加载图像。在其他地方它都很好用

在控制台中,我遇到以下错误:

ActionController::RoutingError(没有与[GET]匹配的路由) “/posts/assets/logo.png”)

但是我在image标签中使用了
src=“assets/m1.jpg
,但是在控制台错误中,链接是不同的


我遗漏了什么?

不以
/
开头的链接会在您当前所在的同一个“文件夹”中查找。因此,当您在
localhost:3000/posts/2
上时,您位于
posts
的“文件夹”中,因此它会查找
localhost:3000/posts/assets/m1.jpg

如果您使用
/
启动一个链接,它将从当前站点的顶部查看
localhost:3000
,因此
/assets/m1.jpg
将查找
localhost:3000/assets/m1.jpg
,这就是您希望它查看的位置

在代码中,您可以使用帮助器,而不是手动写出图像标记:

image_tag('m1.jpg') # <img alt="M1" src="/assets/m1.jpg" />
image_标签('m1.jpg')#

您应该使用帮助器
并将图像放入
资产/images/
目录中。
如果图像标记指定了以下精确的图像路径,则助手将生成图像的正确路径

<img src="assets/m1.jpg" etc="etc">
<%= image_tag "m1.jpg" %>