从JavaScript获取资产路径

我需要在Rails资产管道中的HTML5canvas上显示图像,但我需要知道JavaScript中资产的路径。 我正在为应用程序的其他部分使用js-routes ,但它似乎没有提供一种方法来获取资产管道中的某些东西。

从JavaScript获取Rails资产(例如图像)路径的正确方法是什么?

在Rails Asset Pipeline指南中 ,他们通过使用ERB预处理样式表,提供了样式表中编码资产的示例。 您可以使用与JavaScript相同的技术,假设您将.erb到文件名的末尾:

 var someAssetPath = "<%= asset_path('some_image.png') %>"; 

检查js_assets(rails项目中的Javascript助手) gem。 我认为这正是你所需要的。

从文档:

在javascript中获取模板app / assets / javascripts / rubrics / views / index.html的var path = asset_path('rubrics/views/index.html')var path = asset_path('rubrics/views/index.html')

为什么不在.erb文件中的元素内添加数据属性,然后使用JQuery检索它?

在some_template.html.erb中

 <%= content_tag(:div, "", id: 'some-id', data:{path_to_asset: asset_path("some_image.png")}) %> 

然后在some_javascript.js

 var assetPath = $("#some-id").data("pathToAsset"); 

对于那些使用HAML的人,您可以:

 :javascript var assetPath = "#{asset_path('some_image.jpg')}"; 

我在Rails 4.1中遇到了同样的问题,并在coffeescript中使用引用rails资产的图像。 无需其他库。

Interesting Posts