我的应用程序有一个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") %>