javascript image asset-pipeline rails-3.1

¿URL de las imágenes en el código JavaScript utilizando el canal de activos Rails 3.1?



image asset-pipeline (2)

En los archivos CSS, puede obtener el nombre correcto de un activo de imagen (con la huella digital) utilizando:

background-image: url(image-url("rails.png"))

¿Pero cómo haces lo mismo desde un archivo JavaScript?


En Rails 4, en lugar de usar una vista js.erb , te recomiendo que te js.erb en el js.erb activos y le pases la URL con una variable en lugar de gon o alguna otra técnica discutida en: Ruby on Rails - Enviar una variable de JavaScript desde el controlador al archivo de recursos de Javascript externo

Con gon :

app / views / layouts / application.html.erb:

<head> <meta charset="utf-8"/> <%= include_gon %>

app / controllers / application_controller.rb:

before_filter { gon.path = asset_path ''image.png'' }

app / asset / javascripts / file.js.coffee:

alert gon.path

Este método es más rápido porque el archivo se precompila solo una vez en el inicio, recibe el servicio del servidor en lugar de hacerlo a través de Rails y en la misma solicitud HTTP que el resto de los Js.


Veo que estás usando el método de ayuda sass.

En CSS estándar (no Sass) haces algo como esto:

.class { background-image: url(<%= asset_path ''image.png'' %>) }

El archivo CSS deberá tener erb agregado a las extensiones:

file_name.css.erb

Para javascript se aplican las mismas reglas:

file_name.js.erb

y en el archivo:

var image_path = ''<%= asset_path ''image.png'' %>''

La guía de canalización de activos de Rails es una excelente fuente de información sobre cómo usar estas funciones.