Ruby on Rails - 在Javascript中引用图像

时间:2017-01-19 04:53:53

标签: ruby-on-rails

我在我的Rails 5.0应用中使用jquery.infinitescroll.js。我的供应商目录中有脚本,我试图自定义JS以使用不同的图像。

我可以这样做,如果我设置了这个属性:

img: "/img/loading.gif", 

我尝试在供应商目录中的名为img的目录中添加图像,但这不起作用。

我还尝试将属性设置为"/image/loading.gif",但仍无法找到图像。处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

一种方法是将.erb扩展名附加到jquery.infinitescroll.js

而且,在jquery.infinitescroll.js.erb中,您可以使用asset_path方法:

{
   /* ... */
   img: '<%= asset_path('loading.gif') %>'
   /* ... */
}

您必须将图像移动到app/assets/images文件夹。

或者,如果您想在自定义文件夹中使用它,请将此路径添加到config.assets.paths << Rails.root.join("vendor", "images")config/application.rb的资源搜索路径。

顺便说一句,这是docs建议的方式:

  

2.3.3 JavaScript / CoffeeScript和ERB

     

如果您将一个erb扩展名添加到JavaScript资源中,那就可以了   例如application.js.erb,然后可以使用asset_path助手   您的JavaScript代码:

     

$('#logo').attr({ src: "<%= asset_path('logo.png') %>" });

     

这会写入被引用的特定资产的路径。