在 Rails 应用中引用图像(Heroku 部署)

Referencing images in a Rails app (Heroku deployment)

我目前在 Rails 应用程序中引用图像时遇到了一个小问题,该应用程序随后被部署到 Heroku。

我在与应用程序相关的以下路径中有一张图片:

app/assets/images/some-image.png

而且我在 HTML 中正确引用了它(据我所知):

<div id="main-nav" class="collapse navbar-collapse">
   <img src="/assets/some-image.png" height="67"/><!-- **IMAGE SOURCE LINK** -->
   <ul class="nav navbar-nav" id="mainNav">
       <li class="active"><a href="#home" class="scroll-link">Home</a></li>
       <li><a href="#introText" class="scroll-link">APR</a></li>
       <li><a href="#initiatives" class="scroll-link">Initiatives</a></li>
   </ul>
</div>

然而,这是显示的内容:

有人知道为什么会这样吗?

你应该使用 image_tag:

<%= image_tag "some-image.png", height: "67" %>

当您部署到 heroku 时,您的资产将使用唯一的摘要进行编译,因此您无法对 /assets/some-image.png 的引用进行硬编码。查看“Rails Asset Pipeline on Heroku Cedar”。

您将需要使用一些辅助函数来正确解析图像路径,例如 image_path('my_image.png')。参见“ActionView::Helpers::AssetTagHelper" or "Asset Tag Helpers”。