0

我对检索 a 的服务器进行 AJAX 调用,@player并将其作为data.player. 对于每个 Player 对象,在以 format 保存的 assets/images 文件夹中都有一个对应的图像"#{first_name}_#{last_name}"

我的 AJAX 调用(在 中home.js.coffee)将图像标签插入到我的 html 中,如下所示:

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

虽然这在我的开发环境中有效,但当部署在 Heroku 上时,图像不会呈现,并且经过检查,Heroku 中的图像标签是这样的:

<img alt="Adrian_Peterson" class="playerpic" src="/assets/Adrian_Peterson-984288afb9b867130c88802cd5a1d80a.jpg">
  • 为什么要将此字母数字代码添加到我的图像名称中?

  • 有没有办法防止这种情况发生?

  • 如果没有,我如何将图像标签插入到我的 HTML 中home.js.coffee并说明 Heroku 添加到我的图像名称中的字母数字代码?

谢谢!

4

1 回答 1

1

  • 添加到图像标签末尾的字母数字是在编译资产时由 rails 添加的,有关该主题的更多信息,请参阅Rails 指南,但基本上它有助于在人们的浏览器上缓存资产。
  • 默认情况下,指纹识别在生产环境中启用,而在所有其他环境中禁用。您可以通过 config.assets.digest 选项在配置中启用或禁用它。

  • 将图像放到页面上的最简洁方法可能是在 JSON 响应中返回图像路径,而不是每次都尝试构建它。

于 2013-10-14T19:16:47.273 回答