ruby-on-rails-3 - from - the asset is not present in the asset pipeline rails 5
Rails 3.1 que sirve imágenes de proveedor/activos/imágenes (4)
Estoy tratando de poner algunas imágenes externas (usadas por un plugin jQuery) en proveedores / activos / imágenes en mi aplicación Rails 3.1. El problema es que cuando intento algo como:
<%= image_tag "ui-bg_flat_75_ffffff_40x100.png" %>
Me sale un error:
No route matches [GET] "/assets/ui-bg_flat_75_ffffff_40x100.png"
Revisé mis Rails.application.config.assets.paths y enumero estos directorios:
..../app/assets/images
..../app/assets/javascripts
..../app/assets/stylesheets
..../vendor/assets/images
..../vendor/assets/stylesheets
..../.rvm/gems/ruby-1.9.2-p180@mygems/gems/jquery-rails-1.0.9/vendor/assets/javascripts
Como puedes ver / vendor / assets / images está listado allí. Si pongo mi imagen en la aplicación / activos / imágenes todo funciona.
Pensé que se suponía que la nueva cartera de activos pasaría por todos los directorios de activos y publicaría el archivo solicitado donde sea que lo encuentre.
¿Alguien sabe cuál es el problema aquí?
La distribución de activos se describe en esta guía de carriles por Ryan Bigg (estado del proyecto en este momento).
http://ryanbigg.com/guides/asset_pipeline.html y http://ryanbigg.com/2011/06/sprocket-asset-tags-internals/ para las referencias.
De acuerdo con esto, tu ejemplo debería funcionar.
Extraer:
Los activos se pueden colocar dentro de una aplicación en una de tres ubicaciones: app / assets, lib / assets o vendor / assets.
app / assets es para activos que son propiedad de la aplicación, como imágenes personalizadas, archivos javascript o hojas de estilo.
lib / assets es para el código de su propia biblioteca que no se ajusta realmente al alcance de la aplicación o aquellas bibliotecas que se comparten entre las aplicaciones.
proveedor / activos es para activos que son propiedad de entidades externas, como el código para complementos de JavaScript.
Cualquier subdirectorio que exista dentro de estas tres ubicaciones se agregará a la ruta de búsqueda de Piñones (visible llamando a Rails.application.config.assets.paths en una consola). Cuando se solicita un activo, se examinarán estas rutas para ver si contienen un activo que coincida con el nombre especificado. Una vez que se ha encontrado un activo, Sprockets lo procesa y luego lo sirve.
He probado con un ejemplo en mi aplicación y funciona la misma sintaxis que la tuya. Tal vez tenga un error tipográfico en el nombre de su activo.
Para Martin: la ruta de búsqueda de Sprockets es visible llamando a Rails.application.config.assets.paths en una consola.
Si está utilizando un tema jQuery UI Theme Roller, el problema podría ser que en el archivo jquery-ui css las imágenes están referenciadas dentro de una subcarpeta ''images''.
Es decir, debe colocar las imágenes en una carpeta ''./app/assets/images/images''
o editar el archivo jquery-ui css y eliminar el prefijo de la carpeta ''images /''.
Tal vez deberías crear otra carpeta en / assets / images. Usted crea un nombre de "imágenes" y luego simplemente copia todas las imágenes de jquery-ui y pega en la carpeta "imágenes" que creó anteriormente. Espero que esto te ayude.
Tuve que reiniciar el servidor de mis rails después de crear el directorio vendor/assets/images
. Antes de esto, estaba viendo el mismo error que tú ("Ninguna ruta coincide con [GET]").
Mi suposición es que el servidor de rieles no verifica estos directorios si no existían cuando se inició por primera vez. Cuando abre una consola de rieles para diagnosticar el problema, obtiene una nueva instancia de rieles que conoce el directorio, lo que solo aumenta la confusión.