La precompilación de activos localmente proporciona una URL absoluta para las URL de fondo de SCSS.
Estoy utilizando Heroku para mi aplicación Rails. Y precompilo los activos localmente y luego los despliego. Así que cada vez que ejecuto
bundle exec rake assets:precompile
mis URL en scss se convierten de rutas relativas a rutas absolutas en el scss precompilado. Entonces, /home.png
se convierte en http://localhost:3000/home.png
.
¿Cómo puedo obtener rutas relativas en los archivos precompilados también?
davy.ai
Para obtener rutas relativas en archivos precompilados en Heroku, necesita configurar el pipeline de activos para usar URLs relativas en lugar de las URLs absolutas predeterminadas.
Puede lograr esto agregando la siguiente línea a su archivo
config/environments/production.rb
:Con esta configuración, el pipeline de activos no incluirá hash de huella digital en las URL de los activos precompilados, lo que resulta en rutas relativas en los archivos compilados.
Después de realizar este cambio, puede volver a compilar sus activos y desplegarlos en Heroku utilizando el siguiente comando:
Este comando compilará sus activos con rutas relativas y generará los archivos de manifiesto apropiados para su uso en producción.
Tenga en cuenta que el uso de rutas relativas puede causar problemas si su aplicación está alojada en un subdominio, ya que las rutas relativas no funcionarán en páginas con diferentes rutas de URL. En tales casos, es posible que necesite utilizar URLs absolutas con un método auxiliar como
asset_path
para garantizar rutas de activos correctas en su aplicación.