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

747
Visualizações
Eliminación de caché con CRA React

Cuando actualicé mi sitio, ejecuté npm run build y cargué los nuevos archivos en el servidor. Todavía estoy buscando la versión anterior de mi sitio.

Sin React, puedo ver la nueva versión de mi sitio con eliminación de caché. Hago esto:

archivo anterior

 <link rel="stylesheet" href="/css/styles.css">

Archivo nuevo

 <link rel="stylesheet" href="/css/styles.css?abcde">

¿Cómo puedo hacer algo como esto o lograr la eliminación de caché con la aplicación Create React?

Hay muchos hilos en el GitHub de la aplicación create react sobre esto, pero nadie tiene una respuesta adecuada/simple.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

EDITAR: create-react-app v2 ahora tiene el trabajador de servicio deshabilitado de forma predeterminada

Esta respuesta solo aplica para CRA v1

Esto probablemente se deba a su trabajador web.

Si observa su archivo index.js, puede ver

 registerServiceWorker();

¿Nunca te preguntaste qué hizo? Si echamos un vistazo al archivo del que se importó, podemos ver

 // In production, we register a service worker to serve assets from local cache. // This lets the app load faster on subsequent visits in production, and gives // it offline capabilities. However, it also means that developers (and users) // will only see deployed updates on the "N+1" visit to a page, since previously // cached resources are updated in the background. // To learn more about the benefits of this model, read {URL} // This link also includes instructions on opting out of this behavior.

Si desea eliminar el trabajador web, no solo elimine la línea. Importe cancelar el registro y llámelo en su archivo en lugar del registro.

 import { unregister } from './registerServiceWorker';

y luego llamar

 unregister()

PD: cuando cancela el registro, se necesitará al menos una actualización para que funcione

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema cuando uso create-react-app (y lo implemento en heroku). Sigue mostrando la versión anterior de mi aplicación 😡.

Encontré que el problema parece estar en el lado del navegador, almacena en caché mi antiguo index.html con su paquete js desactualizado

Es posible que desee agregar lo siguiente a su encabezado de respuesta del lado del servidor

 "Cache-Control": "no-store, no-cache"

o si también está utilizando heroku create-react-app-buildpack , actualice el archivo static.json

 "headers": { "/**": { "Cache-Control": "no-store, no-cache" } }

Creo que de esta manera aún puedes mantener a ese trabajador de servicio pobre 😂, y el contenido más reciente se mostrará en la carga N+1 (segunda actualización)

Espero que esto ayude...

over 4 years ago · Santiago Trujillo Relatório

0

Como se menciona en algunas de las respuestas anteriores aquí, tanto el trabajador del servicio como los encabezados de caché (falta de) pueden conspirar en su contra cuando se trata de ver versiones antiguas de su aplicación React.

Los documentos de React establecen lo siguiente cuando se trata de almacenamiento en caché :

El uso Cache-Control: max-age=31536000 para sus activos de build/static y Cache-Control: no-cache para todo lo demás es un punto de partida seguro y efectivo que garantiza que el navegador de su usuario siempre buscará un archivo index.html actualizado. , y almacenará en caché todos los archivos build/static durante un año. Tenga en cuenta que puede usar la caducidad de un año en build/static de forma segura porque el hash del contenido del archivo está incrustado en el nombre del archivo.

Como lo mencionó @squarism, las versiones anteriores de create-react-app tenían la opción de exclusión voluntaria del registro de trabajadores de servicio, mientras que las versiones más nuevas son de opción . Puede leer más sobre eso en los documentos oficiales . Es un proceso bastante sencillo hacer coincidir su configuración con la última plantilla si comenzó con una versión anterior de create-react-app y desea cambiar al nuevo comportamiento.

Preguntas relacionadas:

  • Cómo evitar el almacenamiento en caché para create-react-app
  • ReactJS: ¿Cómo evitar que el navegador almacene en caché archivos estáticos?
  • como borrar la cache del navegador en reactjs
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