the rails present not images bootstrap asset ruby-on-rails ruby asset-pipeline js-routes

ruby on rails - rails - Adquirir ruta de activos desde JavaScript



sprockets-rails (5)

Necesito mostrar imágenes en un lienzo HTML5 que se encuentran en la canalización de activos de Rails, pero necesito conocer la ruta para el activo desde JavaScript. Estoy usando js-routes para otras partes de la aplicación, pero no parece proporcionar una manera de obtener la ruta a algo en la tubería de activos.

¿Cuál es la forma correcta de obtener la ruta a un activo de Rails (por ejemplo, una imagen) desde JavaScript?


¿Por qué no agregar un atributo de datos para la ruta dentro de un elemento en su archivo .erb y luego recuperarlo con JQuery?

dentro de some_template.html.erb

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

entonces en some_javascript.js

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



Para aquellos que usan HAML puedes hacer:

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



En la guía de Rails Asset Pipeline , dan un ejemplo de codificación de activos en sus hojas de estilo preprocesando las hojas de estilo con ERB. Puede usar la misma técnica con JavaScript, suponiendo que .erb un .erb al final del nombre de archivo:

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