es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo evitar que aplicaciones de terceros como Internet Download Manager descarguen archivos pre-gzipeados?

Para el modo de producción, necesito comprimir mi proyecto de React en archivos gzip para mejorar el rendimiento. Así que he comprimido mis archivos de React con compression-webpack-plugin de la siguiente manera en webpack.config:

plugins: [
new CompressionPlugin({
algorithm: ‘gzip’,
test: /.(js)$|.(css)$|.(html)$|.eot?.+$|.ttf?.+$|.woff?.+$|.svg?.+$/,
})
],

Aquí está la carpeta de salida:

enter image description here

Estoy usando un reescritor de URL para cargar archivos pre-gzip en el servidor en lugar de los archivos js originales en web.config:





















Además, he instalado Internet Download Manager en mi sistema operativo. El problema que tengo es que Internet Download Manager descarga los archivos gz y eso hace que el sitio web no funcione correctamente. Aquí está la imagen del problema:

enter image description here

¿Cómo puedo evitar que una aplicación de terceros como Internet Download Manager se interponga entre la respuesta que se envía desde el servidor y el cliente que desea recibirla y que los archivos gzip funcionen correctamente?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para evitar que programas de terceros, como Internet Download Manager, interfieran con la respuesta del servidor y causen problemas con los archivos comprimidos en formato gzip, puedes agregar el siguiente código a tu archivo web.config:

    <system.webserver>
      <staticcontent>
        <remove fileextension=".gz"></remove>
        <mimemap fileextension=".gz" mimetype="application/gzip"></mimemap>
        <clientcache cachecontrolmode="UseMaxAge" cachecontrolmaxage="365.00:00:00"></clientcache>
      </staticcontent>
      <rewrite>
        <outboundrules rewritebeforecache="true">
          <rule name="Add Encoding Header" precondition="IsGzipFile">
            <match servervariable="RESPONSE_Content_Encoding" pattern=".+" negate="true"></match>
            <action type="Rewrite" value="gzip"></action>
          </rule>
          <preconditions>
            <precondition name="IsGzipFile">
              <add input="{RESPONSE_CONTENT_TYPE}" pattern="^application/javascript"></add>
            </precondition>
          </preconditions>
        </outboundrules>
      </rewrite>
    </system.webserver>
    

    Este código agrega un nuevo tipo MIME para los archivos .gz y elimina el tipo MIME existente. También agrega una nueva regla de salida para agregar el encabezado Content-Encoding a la respuesta si el archivo es un archivo JavaScript comprimido con gzip. Esto asegurará que el servidor envíe los encabezados correctos con la respuesta y evitará la interferencia de aplicaciones de terceros.

Comments are closed.