使用 Rails 服务器 URL 显示图像

Show image with Rails server URL

我的 rails 源中有一张图片 rails_project/public/images/2019-12/image1.png

我想通过访问 URL 来显示图片:

http://10.0.5.140:8888/applications/images/2019-12/image1.png 
(10.0.5.140 is my IP and 8888 is my rails port)

我尝试了一些解决方案,但总是收到错误消息:

Routing Error
No route matches [GET] "/applications/images/2019-12/image1.png"

请给我一些想法来解决我的问题。谢谢!

因为您的图像在 public 文件夹中。请试试这个

http://10.0.5.140:8888/images/2019-12/image1.png

要显示 public 文件夹的静态图片,您也可以试试这个:

<img src="/images/2019-12/image1.png">

使用资产助手方法image_tag()。您一定要阅读官方指南的 Coding Links to Assets.

<%= image_tag('/images/2019-12/image1.png') %>

应该适合你。

Rails 使用 asset pipeline 并从资产加载路径提供文件(默认为 app/assetslib/assetsvendor/assets

开发中,这些加载路径下的文件由应用服务器提供。

production 中,这些加载路径下的文件被预编译成 /public/assets 并由 nginx 等网络服务器提供服务。

image_tag 方法与

  • 相对文件路径,例如'file.png' 搜索 /public/assets/file.png
  • 绝对文件路径,例如'/images/file.png' 搜索 /public/images/file.png