我在我的Rails 5.0应用中使用jquery.infinitescroll.js。我的供应商目录中有脚本,我试图自定义JS以使用不同的图像。
我可以这样做,如果我设置了这个属性:
img: "/img/loading.gif",
我尝试在供应商目录中的名为img
的目录中添加图像,但这不起作用。
我还尝试将属性设置为"/image/loading.gif"
,但仍无法找到图像。处理此问题的最佳方法是什么?
答案 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') %>" });
这会写入被引用的特定资产的路径。