1

我的应用程序有一个image_tag基于当前@player. Player 有一个image_name设置为 的字段,"#{player.first_name}_#{player.last_name}"我根据该@player.image_name字段获取图像的来源。这在本地查看时非常有效,但是,当部署到 Heroku 时,它仅在第一次时有效。我的意思是,当我的页面加载时,它会呈现home.html.erb并显示图片,但是,在.click事件之后,ajax 调用会更改值@player并使用 jQuery 更新 html。

这就是问题出现的地方。当我第一次在 Heroku 上加载页面并检查图像元素时,源代码如下所示:

src="/assets/Adrian_Peterson-94b1c3dd9514a0c926efbdf4e5193329.jpg"

但是,该@player.full_name字段实际上是=> Adrian_Peterson(没有后面的代码)。该数字/字母序列来自哪里?为什么我的代码在第一次加载的时候就知道这张图片的位置,但是当jQuery注入新的图片代码的时候,就出现了这样的情况:

src="/images/Frank_Gore.jpg"

图片不显示?

所以我的问题是:

  • 图片来源末尾的代码来自哪里?
  • @player.image_name如果我不知道这段代码在部署到 Heroku 时会是什么,如何根据字段引用图片?

编辑:

这在 ajax 成功回调中添加到主页(较大的 html 块的一部分)。data.player1是一个播放器对象。

/home.js.coffee/

< img src="/assets/' + data.player1.first_name + '_' + data.player1.last_name + '.jpg" alt="' + data.player1.first_name + '_' + data.player1.last_name + '" class= "playerpic" >' +`

这是在 ajax 调用之前引用图像的方式,来自/home.html.erb.

<%= image_tag("#{@player1.first_name}_#{@player1.last_name}.jpg", alt: "#{@player1.first_name}_#{@player1.last_name}", class: "playerpic") %>
4

0 回答 0