Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

394
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!