Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在heroku上部署的rails应用程序中生成img url_Jquery_Ruby On Rails_Ajax_Image_Heroku - Fatal编程技术网

Jquery 在heroku上部署的rails应用程序中生成img url

Jquery 在heroku上部署的rails应用程序中生成img url,jquery,ruby-on-rails,ajax,image,heroku,Jquery,Ruby On Rails,Ajax,Image,Heroku,我对服务器进行AJAX调用,该服务器检索@player,并将其作为data.player返回到AJAX调用。对于每个玩家对象,在assets/images文件夹中都有一个相应的图像,保存格式为“#{first_name}#{last_name}” 我的AJAX调用(位于home.js.coffee中)在我的html中插入一个图像标记,如下所示: < img src="/assets/' + data.player1.first_name + '_' + data.player1.last_

我对服务器进行AJAX调用,该服务器检索
@player
,并将其作为
data.player
返回到AJAX调用。对于每个玩家对象,在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">

  • 为什么要将这个字母数字代码添加到我的图像名称中

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

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

谢谢

  • 添加到图像标记末尾的字母数字是rails在编译资产时添加的,有关该主题的更多信息,请参阅,但它基本上有助于在人们的浏览器上缓存资产
  • 默认情况下,指纹识别在生产环境中启用,在所有其他环境中禁用。您可以通过config.assets.digest选项在配置中启用或禁用它
  • 将图像放到页面上最干净的方法可能是在JSON响应中返回图像路径,而不是每次都尝试构造它


很好,谢谢。我可以使用什么来获取控制器中的映像路径,以便在JSON响应中返回它?最简单的方法是使用JSON模板系统,而不是将所有这些都放在控制器中。也就是说,您可以使用类似于
“#{player1.first_name}#{player1.last_name}”
的字符串传递它,然后在JS中解释它以创建图像标记。谢谢。我现在正在传递一个这样的字符串,但我很难弄清楚如何使用嵌入JS中的javascript或ERB将其转换为一个考虑字母数字代码的image_标记。你知道如何做到这一点吗?再次感谢你不需要考虑到这一点,不管怎样都会找到他们的。图像是否都在您的
应用程序/资产/图像
目录中?如果您试图动态上传它们,您的问题是Heroku不允许本地存储,您必须考虑将它们存储在S3之类的设备上。如果这仍然是一个问题,请尝试在本地生产环境中运行服务器以诊断问题(rails s-e生产环境)。从这里我很难猜到。