Serve hashed /_next/static/* as immutable in public/_headers
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 67/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- next.js, typescript
- Área
- devops
Línea de trabajo
Lee public/_headers e inspecciona las reglas de caché existentes. Comprueba las rutas generadas de out/ bajo /_next/static/ para confirmar que sus nombres incluyen hashes de contenido. Después, añade la regla propuesta y verifica con curl -sI, tras el despliegue, que Cloudflare Pages la aplica. El trabajo estará terminado cuando los recursos con hash reciban la política inmutable de un año y los archivos HTML y de metadatos indicados conserven su comportamiento actual sin caché.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Current
Cloudflare Pages serves the content-hashed build assets with its default policy:
$ curl -sI https://decdn.org/_next/static/chunks/101w7am0t3tuy.css | grep -i cache-control
cache-control: public, max-age=14400, must-revalidate
The JS chunks are the same. On every reload the browser revalidates the stylesheet with a conditional request before it can apply it. That round-trip is the window in which Firefox has been seen painting the page unstyled (#331). It also adds a revalidation per asset on repeat visits after 4 h.
Proposal
Add a rule to public/_headers:
/_next/static/*
Cache-Control: public, max-age=31536000, immutable
Next's /_next/static/ filenames change with their content, so a long-lived immutable cache is safe. A deploy that changes the CSS emits a new filename, and the HTML (still max-age=0, must-revalidate) points at it.
Checks
- Confirm Cloudflare Pages lets a
_headersCache-Controloverride its default for these paths (Pages docs; verify withcurl -sIafter deploy). - Confirm nothing un-hashed lives under
/_next/static/inout/.next/fontfiles under/_next/static/media/are hashed too. - Keep the HTML,
robots.txt,sitemap*.xmlandllms*.txtuncached as they are.
- Lenguaje dominante
- TypeScript
- Estrellas
- 3
- Forks
- 0
- Merge medio
- 6 h 29 min
- PR fusionados (30 d)
- 59
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de decdn/website
-
documentation low-priority
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug med-priority
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
documentation enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
-
enhancement low-priority
Dificultad 4/5 1-2 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de decdn/website
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Graphify-Labs/graphify#4860 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
sveltejs/eslint-plugin-svelte#1615 ·
Los mantenedores suelen responder en 7 días
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrorsPosiblemente ocupada @as992949791 la tomó hoy. Abiertogood first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
reticlehq/reticle#2033 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día