从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资产的图像。 无需其他库。