¿Se supone que debemos usar algo más aparte de image-urly otros en Rails 4? Devuelven valores diferentes que no parecen tener sentido. Si tengo logo.pngen /app/assets/images/logo.pngy hago lo siguiente, esto es lo que me sale:
image-url("logo.png") -> url("/images/logo.png") #obviously doesn't work
image-path("logo.png") -> "/images/logo.png"
asset-url("logo.png") -> url("/logo.png")
Por supuesto que ninguno de estos funciona porque necesitan al menos /assetsde frente.
ACTUALIZACIÓN : En realidad, acabo de notar, ¿cómo accedo a las imágenes en Rails 4? Tengo una imagen en/app/assets/images/logo.png. Pero si voy a cualquiera de las siguientes URL, sigo sin ver mi imagen:
http://localhost:3000/assets/logo.png
http://localhost:3000/assets/images/logo.png
http://localhost:3000/logo.png
http://localhost:3000/images/logo.png
ACTUALIZACIÓN 2 : La única forma en que puedo abrir milogo.pnges moviéndolo al/app/assets/stylesheetsdirectorio y luego tirando hacia arriba:
http://localhost:3000/assets/logo.png

asset_path("logo.png", image).cssarchivo o en un.css.scssarchivo?.css.scssarchivoRespuestas:
Yo solo tuve este problema. 3 puntos que con suerte ayudarán:
app/assets/imagesdirectorio, entonces debería poder llamar a la imagen directamente sin prefijo en la ruta. es decir.image_url('logo.png')background-image:propiedad, entonces su línea de código debería serbackground-image: image-url('logo.png'). Esto funciona tanto para hojas de estilo menos como para sass. Si lo está usando en línea en la vista, entonces necesitará usar elimage_tagasistente integrado en rieles para generar su imagen. Una vez más, sin prefijos<%= image_tag 'logo.png' %>rake assets:precompilepara generar sus activos orake assets:precompile RAILS_ENV=productionpara producción; de lo contrario, su entorno de producción no tendrá los activos con huellas digitales cuando cargue la página.También para esos comandos en el punto 3, necesitará prefijarlos
bundle execsi está ejecutando bundler.fuente
Su primera formulación
image_url('logo.png'), es correcta. Si se encuentra la imagen, generará la ruta/assets/logo.png(más un hash en producción). Sin embargo, si Rails no puede encontrar la imagen que nombró, recurrirá a ella/images/logo.png.La siguiente pregunta es: ¿por qué Rails no encuentra tu imagen? Si lo pone en app / assets / images / logo.png, debería poder acceder a él yendo a
http://localhost:3000/assets/logo.png.Si eso funciona, pero su CSS no se actualiza, es posible que deba borrar el caché. Elimine
tmp/cache/assetsdel directorio de su proyecto y reinicie el servidor (webrick, etc.).Si eso falla, también puede intentar usar
background-image: url(logo.png);Eso hará que su CSS busque archivos con la misma ruta relativa (que en este caso es / assets).fuente
Acabo de descubrir que al usar
asset_urlhelper se resuelve ese problema.fuente
undefined local variable or method 'image'error.asset_path("<your_path>", type: :image)Tuve un problema similar al intentar agregar una imagen de fondo con CSS en línea. No es necesario especificar la carpeta de imágenes debido a la forma en que funciona la sincronización de activos.
Esto funcionó para mí:
fuente
assets/img.jpgo../assets/img.jpgque obviamente no funciona en ningún directorio./assets/img.jpghace. TYRails 4.0.0 verá la imagen definida con la
image-urlmisma estructura de directorio con su archivo css.Por ejemplo, si el CSS en
assets/stylesheets/main.css.scss,image-url('logo.png')vuelveurl(/assets/logo.png).Si mueve su archivo css a
assets/stylesheets/cpanel/main.css.scss, seimage-url('logo.png')convierte en/assets/cpanel/logo.png.Si desea usar la imagen directamente en el directorio assets / images, puede usar
asset-url('logo.png')fuente
para hojas de estilo: url (asset_path ('image.jpg'))
fuente
url(asset_path('image.jpg'),url('image.jpg')yimage-url('image.jpg')? Estoy trabajando con Rails 5.0.0.1 yurl()funciona bien en archivos SCSS y en archivos html.erb que uso,asset_path()así que me gustaría saber cuál es el camino correcto a seguir. Gracias por adelantado.asset_pathagregue al archivo de imagen un apéndice de resumen. En realidad, es para producción, después de cada implementación, se cambiará el apéndice de un resumen y el navegador del usuario descargará una nueva versión de las imágenes.