Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

420
Vistas
Canalización de activos de Webpacker y Rails en Docker: la vista no apunta al activo JS actualizado

Estoy ejecutando una aplicación Rails en un contenedor Docker, pero tengo problemas con mi entorno de desarrollo, ya que no puedo obtener cambios de JavaScript de manera confiable para propagarlos a mi aplicación que se ejecuta en localhost.

Descripción de los pasos para identificar el problema:

  • Si actualizo la vista, puedo ver en la consola que webpacker está compilando.
  • Genera un nuevo activo con caché roto en public/packs admin-7c69920b702f68258e99.js
  • El manifest.json refleja esta actualización "admin.js": "/packs/admin-7c69920b702f68258e99.js"
  • Puedo actualizar la vista repetidamente y, sin embargo, la pestaña de red muestra que el activo anterior se llama admin-4cf5f7c7d6c5ad665fc6.js .

Probé el siguiente proceso, pero no activa una actualización de los activos incluso con el caché deshabilitado.

  • Actualice la vista en el navegador para activar la compilación del paquete web
  • Reinicie el servidor de Rails bloqueando Docker y ejecutando docker-compose up
  • Actualizar la vista

Por lo general, tengo que detener e iniciar el servidor de Rails por segunda vez para activar la actualización de los activos. Esto parece demasiado vudú para un entorno de desarrollo efectivo.

Me gustaría encontrar una manera de garantizar de manera confiable que los activos más recientes se reflejen en mi entorno de desarrollo sin tener que controlar manualmente los nombres de los archivos de activos para confirmar que se ha realizado la actualización.

¿Hay algún truco para recargar los activos que me podrían faltar?

estoy usando ruby:2.3.7 y Rails 5.2.2.1

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Logré resolver el problema y ahora tengo una recarga en vivo de mis activos de JavaScript.

El primer problema que tuve fue el más fácil de resolver e inmediatamente solucionó el problema para los miembros del equipo que se ejecutaban en su máquina local (es decir, no en un contenedor Docker).

  • El archivo de configuración webpacker.yml tiene una serie de valores predeterminados con cache_manifest establecido en verdadero. Esto explicaría por qué se sentía como si el navegador se aferrara a una instrucción anterior. Resuelto configurando cache_manifest: false

Esto no resolvió de inmediato el problema de la aplicación que se ejecuta en Docker. Aparentemente, debe configurar webpacker para que se ejecute en su propio contenedor. Consulte las instrucciones oficiales de webpacker aquí: https://github.com/rails/webpacker/blob/master/docs/docker.md

Las siguientes instrucciones me parecieron muy útiles: http://paulsturgess.co.uk/blog/2018/01/09/setup-webpacker-webpack-dev-server-with-docker-compose/

  • Así que agregué lo siguiente a mi docker-compose.yml
 version: '3' services: webpacker: build: . environment: - WEBPACKER_DEV_SERVER_PUBLIC=localhost:3035 - WEBPACKER_DEV_SERVER_HOST=localhost command: ./bin/webpack-dev-server --inline true volumes: - .:/myapp ports: - '3035:3035'
  • Luego ejecuta docker-compose up --build

Esto resuelve mágicamente el problema de recarga.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda