Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

418
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda