Por lo tanto, quiero evitar el procesamiento de archivos JavaScript con ERB solo para poder obtener una ruta de recursos adecuada para, por ejemplo, una imagen.Evite los archivos * .js.erb creando todos los valores de asset_path
Actualmente, esto parece ser el enfoque populares:
var myImage = "<%= asset_path('my_image') %>";
cual, por supuesto, requiere el nombre del archivo cambiará a "* .erb", por lo que va a ser procesado.
Prefiero aislar la fealdad de ERB en un punto de mi proyecto al crear un único archivo de manifiesto (por ejemplo, "assets.js.erb") que calcula y pone a disposición todas las rutas de recursos que mi JavaScript necesita.
puedo ciertamente que mojadamente abordándolo caso por caso:
ASSETS =
"my_image": "<%= asset_path('my_image') %>"
window.assetPath = (path) -> ASSETS[path]
Pero, yo realmente algo acaba de escribir algunas ERB a recursiva a través de todo mi asset_paths.asset_environment.paths
y construir un gran objeto literal manifestar por mí, para que mi aplicación real JavaScript puede llamar con confianza:
var myImage = assetPath('my_image');
Ideas en (1) si hay una manera más fácil de hacer esto que echaba de menos, o (2) cómo iba a lograr una búsqueda de todos los poten argumentos válidos reales al asset_path
?.
pero dado que precompilamos los activos, ¿no significaría esto que estamos abandonando el '# asset_path' al agregar el resumen al URI? –
Buen comentario, he editado mi publicación para tenerla en cuenta. –