es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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:

    config.assets.digest = false
    

    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:

    bundle exec rake assets:precompile RAILS_ENV=production
    

    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.

Comments are closed.