the rails present not images bootstrap asset ruby-on-rails-3 ruby-on-rails-3.1 asset-pipeline sass

ruby on rails 3 - rails - carriles 3.1 canalización de activos css caché en desarrollo



the asset is not present in the asset pipeline (10)

Estoy un poco confundido ya que parece que la aplicación.css se incluye a sí misma dos veces, una cuando enumera los recursos del manifiesto y luego un caché de eso. Entonces, cuando elimino un archivo individual, parece que sigue vivo dentro del archivo application.css.

application.css (fuente)

/* *= require twitter/bootstrap *= require_self *= require_tree ./common *= require_tree ./helpers */

Que funciona como se esperaba y genera en modo dev todos los archivos individuales relevantes

desarrollo.rb

# Do not compress assets config.assets.compress = false # Expands the lines which load the assets config.assets.debug = true

salida

<link href="/assets/twitter/bootstrap.css?body=1" media="screen" rel="stylesheet" type="text/css" /> <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" /> <link href="/assets/common/announcement.css?body=1" media="screen" rel="stylesheet" type="text/css" /> <link href="/assets/common/button.css?body=1" media="screen" rel="stylesheet" type="text/css" /> <Blah blah>

application.css (salida)

Esto debe estar en blanco? Como todo lo que tengo en mi archivo application.css es el manifiesto y no el CSS real, sino que obtengo todo mi código concatenado de 106kb de longitud.

IE si elimino un archivo en el directorio común, no desaparece. Ya no aparece en la salida, pero el css aún aparece en la aplicación.css


Actualmente (2012-09-24) existe un error en los rieles / piñones que hace que no detecte adecuadamente los archivos importados.

Esto debería arreglarse en los carriles 3.2.9 y posteriores, pero mientras tanto, puede solucionarlo de la siguiente manera:

  1. Mata la instancia de raíles
  2. rm -rf tmp / cache
  3. Comience la instancia de rails

Ahora debería estar viendo el CSS correcto.


Es posible que desee mirar

https://.com/a/7854902/686460

"Agregar config.serve_static_assets = false a development.rb evitará cargar archivos desde / public / assets"

Eso lo hizo por mí.


Había un último paso requerido para mí, pero lo solucioné. Esto es lo que hice:

  1. cerrar el servidor de raíles
  2. activos de rake: limpio
  3. rake tmp: claro
  4. reinicie el servidor de raíles

Luego, actualicé mi pantalla en Google Chrome, y TODAVÍA NO FUNCIONÓ. Entonces, lancé Firefox y listo, en realidad estaba funcionando. Esto significa que Chrome estaba almacenando en caché los archivos antiguos dentro del navegador. Entonces, eliminé el caché del navegador en Chrome y ¡funcionó!


La mejor manera que funcionó para mí es eliminar el contenido del directorio tmp / cache / * ...


La solución de @ Agustin lo hace por mí, pero aquí hay algunas cosas que debe hacer:

  1. Eliminar todo en / tmp / cache / assets

  2. Agregue config.serve_static_assets = false a development.rb o test.rb (créditos a @Agustin)

  3. Reinicia tu servidor.

  4. Asegúrese de que su application.js / .css no esté en la memoria caché de su navegador. Vaya a http://localhost:3000/assets/application.js?body=1 y presione ctrl + f5 para forzar la actualización (también puede intentar agregar anexando un parámetro de aleatorizador al final: http://localhost:3000/assets/application.js?body=1&rnd=12343 Si obtienes algo más y ctrl + f5 aún no ha ayudado, debes borrar la memoria caché de tu navegador.

Omitir cualquiera de estos pasos devolvió una aplicación almacenada en caché.js / .css en conflicto con mis actualizaciones en archivos individuales.


Lo que funcionó para nosotros fue configurar ''config.assets.debug = false''

Esto ya no establece el código HTML incluido como href = "/ assets / bootstrap-new.css? Body = 1", sino que lo configura como href = "/ assets / bootstrap-new.css", que creo que fue el problema .


Los activos hacen su trabajo mejor cuando se ejecuta la aplicación en el entorno de producción, entonces tendrá que cargar solo la aplicación.css con todos los archivos incluidos, y comprimida, para reducir la solicitud del servidor y esta aplicación.css con los estilos comprimidos será en caché

http://guides.rubyonrails.org/asset_pipeline.html


Sé que esta es una vieja pregunta, pero una solución que funcionó para mí es que tenía proxying nginx para mi entorno de desarrollo y tenía una location ~ ^/(assets)/ block en la configuración. Coméntelo o intente reiniciar nginx para invalidar la caché. Si está desarrollando, probablemente solo quiera comentarlo por completo.

Perdí demasiado tiempo resolviéndolo hasta que lo recordé.


Tuve un problema como este antes. Fue causado después de haber precompilado los activos que iba después de applcation.css dentro de la carpeta pública y en el directorio de aplicaciones. No estoy seguro de cómo solucionarlo para que no siga sucediendo en modo dev, pero si elimina su directorio /public/assets debería solucionarlo.

Compruebe y vea si tiene una carpeta pública / de activos, si lo hace y está llena, es probable que vea el doble.


Yo tuve el mismo problema. A pesar de borrar tmp / cache y public / assets, la application.css minificada aún se almacenaba en caché y se enviaba desde algún lugar, y mis cambios en los archivos css individuales no se estaban publicando.

Esto funcionó para mí: en application.css eliminar la línea *= require_self

reiniciar el servidor

que parece eliminar la caché y si haces clic en application.css en la fuente de tu navegador ya no verás la versión minimizada

reemplace el *= require_self nuevamente en el archivo y continúe desarrollando.