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

398
Vistas
¿Por qué la obtención de un archivo comprimido con gzip no funciona en localhost (con Javascript)?

Estoy completamente confundido por gzipping...

Situación:

  1. Tengo un archivo json con 2mb que me gustaría gzip.
  2. Debería funcionar en el servidor FTP básico y económico que mi cliente tiene/usa
  3. Básicamente, el archivo nunca cambia, por lo que me gustaría precomprimirlo y no hacerlo dinámicamente (también con respecto a 2.)

Al principio pensé que necesitaba una biblioteca como Pako , pero luego leí que los navegadores la admiten de forma nativa .

Lo probé con el siguiente ejemplo:

ejemplo.json

 { "this-is-a": "simple-json" }

ejemplo.json.gz (creado con zlib )

 1f8b 0800 0000 0000 0013 abe6 5200 02a5 928c cc62 5d20 4a54 b252 502a cecc 2dc8 49d5 cd2a cecf 53e2 aa05 00f2 869a 6022 0000 00

índice.html

 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> </head> <body> <script> fetchGzippedData('./example.json.gz') function fetchGzippedData(url){ fetch(url).then(function (response) { return response.json() }) .then(function (json) { console.log(json); }) .catch(function(err) { console.error('Error loading file') }); } </script> </body> </html>

Resultado

Lo extraño es que no funciona en localhost (usando el servicio o con la vista previa de Astro ). Tampoco funciona en mi servidor personal, pero sí en el servidor de mi cliente.

Así que supongo que tiene que ver con la configuración del servidor (con la que no tengo experiencia)... pero ¿por qué no funciona en localhost?

Relacionado:

  • JavaScript comprimido con Gzip no se sirve correctamente
  • Los archivos JavaScript GZipped referenciados no funcionan
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ok, finalmente lo descubrí.

Falla porque la codificación de contenido del encabezado de respuesta del archivo .gz es incorrecta o falta.
(Esta información se puede ver para el archivo respectivo en la pestaña Red en las herramientas de depuración del navegador).

Tiene que estar configurado en Content-Encoding : gzip

Una vez que es correcto, puede buscar y analizar el archivo json como si no estuviera comprimido con gzip.

Para el servicio de servidor de sitio estático que estoy usando, puede establecer opciones a través de un servicio.json :
(Pero también vi información similar para Apache )

 { "headers": [ { "source" : "**/*.@(gz|gzip)", "headers" : [{ "key" : "Content-Encoding", "value" : "gzip" }] } ] }

Nota al margen: me di cuenta de que si accede directamente al archivo .gz a través del navegador:

  • Si la codificación de contenido es correcta: el navegador muestra el contenido del archivo
  • Si la codificación de contenido no es correcta: el navegador descargará el archivo
about 4 years ago · Juan Pablo Isaza 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