2011-11-15 14 views
6

Tengo un problema con la cartera de activos, ya tengo un recurso/controlador llamado assets. Así que he cambiado la opción assets.prefix a "/ externals".Rails 3.1.1 - Asset Pipeline - asset.prefix no funciona con resource: assets

config.assets.prefix = '/externals' 

Esta dosis simple no funciona a menos quito:

resources: assets 

Entonces todos funciona como se espera.

No estoy seguro de cómo escribir una prueba para probar esto, pero he creado una aplicación para mostrarlo.

https://github.com/nodrog/asset-pipeline-issue

Si ejecuta la aplicación, y la visita de los productos/'todo saldrá bien, y luego ir al archivo de rutas y cambie la variable create_bug true.

Hemos examinado https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rb, y luego agregamos un depurador al método asset_path.

Este método no se llama, si usted es un depurador en el método javascript_include_tag. Y ejecute el método (: asset_path) .source_location, le dice que está llamando al método desde las rutas predeterminadas y no desde el asistente de los piñones.

Cualquier ayuda sería muy apreciada ...

+0

abrió un boleto en los carriles faro en este tema. y ha subido un folk que soluciona el problema, aunque probablemente no de la mejor manera. https://github.com/rails/rails/issues/3643#issuecomment-2775938 – nodrog

+0

Tienes razón nodrog, este es un problema complicado. Me encontré con esto porque los ayudantes no estaban usando la opción config.assets.prefix (si había o no recursos: assets in routes.rb), y cuando eso se solucionó, pensé que todo estaba bien. Por desgracia, los ayudantes de los Piñones no usan la configuración cuando se especifican los activos en config.rb. ¿Por qué? Echaré un vistazo a su trabajo ahora. Intenté solucionarlo con restricciones, así como dirigir mi prefijo personalizado a Piñones, pero no tuve suerte. – Docunext

Respuesta

Cuestiones relacionadas