在Heroku上部署的rails应用程序中渲染图像

时间:2013-10-10 03:55:48

标签: jquery ruby-on-rails image heroku deployment

我的应用有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"

图片无法显示?

所以我的问题是:

  • 图片来源末尾的代码来自哪里?
  • 如果在将代码部署到Heroku时我不知道该代码是什么,我如何根据@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") %>

0 个答案:

没有答案