我的应用有image_tag
根据当前@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
字段引用图片?修改
这将添加到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" >' +`
这是从/home.html.erb
开始在ajax调用之前引用图像的方式。
<%= image_tag("#{@player1.first_name}_#{@player1.last_name}.jpg", alt: "#{@player1.first_name}_#{@player1.last_name}", class: "playerpic") %>