Rails 7 - 如何显示与 Rails 应用程序不同位置的图像?

问题描述 投票:0回答:1

我的 Rails 应用程序位于

/Users/adam/railsapps/my_project
。 图像存储在
/Users/adam/gallery/
中。

在我的 Rails 应用程序的数据库中,我存储了有关图像的信息,包括它们的路径。

在我的 Rails 应用程序中,当我这样做时

[![<%= image_tag("/Users/adam/gallery/#{image.filename_path}") %>][1]][1]

现在显示图像。注意 - 上例中图像的路径是正确的。

当我检查日志时,我看到以下内容:

ActionController::RoutingError (No route matches [GET] "/Users/adam/gallery/img_name.jpg"

我也尝试过这个:

<img src="/Users/adam/gallery/<%= image.filename_path %>">

没有运气。

如何解决这个问题?


注意:这是在我的开发环境中。对于生产,我计划将图像存储在一台服务器/服务上,Rails 应用程序在另一台服务器上获取并显示它们。

ruby-on-rails
1个回答
0
投票

问题似乎在于 Rails 路由器正在尝试查找您添加的路径。但是不是内部 Rails 路径。因此,可能您必须在 url 的开头添加 file:/// 才能将其作为文件系统中的绝对 url

<%= image_tag("file:///Users/adam/gallery/#{image.filename_path}") %>

另一方面,我认为您尝试打开项目之外的文件有点奇怪,因此一旦部署项目,它将无法提供图像,我建议您存储项目资产文件夹中的图像或 使用 AWS S3 等其他服务来存储图像

© www.soinside.com 2019 - 2024. All rights reserved.