6

Estoy tratando de actualizar el código para trabajar con los rieles liberados 3.1.0:Cómo cambiar temporalmente la ruta de salida al precompilar activos, Piñones/carriles activos de tuberías, 3.1.0

# temporarily set the static assets location from public/assets to our spec directory 
    ::Rails.application.assets.static_root = Rails.root.join("spec/javascripts/generated/assets") 

    ::Rake.application['assets:clean'].invoke 
    ::Rake.application['assets:precompile'].invoke 

Ahora que las ruedas dentadas :: Environment # static_root ha sido eliminado, ¿cuál es la mejor forma de cambiar temporalmente el directorio de salida de los piñones?

Editar: También me gustaría ser capaz de limpiar los activos en mi directorio de salida personalizado :)

Respuesta

1

Usted puede utilizar config.assets.prefix, pero esto todavía va a poner los activos en el directorio público (véase here para el tarea de rake, que se une al public_path y el prefijo).

En su caso, esto debería funcionar:

Rails.application.config.assets.prefix = "../spec/javascripts/generated/assets" 
Rails.application.config.assets.manifest = File.join(Rails.public_path, config.assets.prefix) 

tuviera que especificar la ruta de manifiesto debido a la orden de carga raro de la railtie ruedas dentadas. Sin hacerlo, se queda atascado en public/assets, que no existe e incrementa la tarea de rake. YMMV.

Nota al margen: Intenté esto en el entorno de desarrollo al principio, pero el config.assets.prefix se negó a cambiar. Sospecho que al poner config.assets.enabled en true lo habría solucionado, pero aún no lo he probado.

Como beneficio adicional, los assets:clean funciona perfectamente con esta solución (se puede ver por sí mismo in the rake task)

+0

Me encanta este tipo de pregunta, que me da la excusa perfecta para tomar un baño en la fuente de raíles: -) –

+0

¡Gracias Benoit, eso funcionó! –

+0

No funciona como en rieles 4 –

Cuestiones relacionadas