Búsqueda de sitios web

almacenamiento en caché - ¿Por qué Chrome no actualiza los archivos fuente de Typescript al cambiarlos?


Estoy trabajando en un proyecto de TypeScript (0.9.1) usando Visual Studio 2012 con la última versión de Web Essentials como IDE, y depuro usando las herramientas de desarrollo de Chrome.

Recientemente, y muy probablemente después de la actualización de Chrome (versión actual 29.0.1547.66 m), los archivos de TypeScript no se actualizan después de que los edito, y por otro lado, los archivos js compilados correspondientes sí se actualizan, pero parece que de alguna manera la funcionalidad todavía depende de la versión no actualizada de los archivos fuente.

Soluciones intentadas y fallidas:

  • Reconstruye la solución completa.
  • Actualizar forzadamente (Shift + F5) el sitio en localhost en Chrome
  • Eliminando archivos de mapa de origen y generándolos de nuevo.

Después de algunos intentos, parece que incluso una solicitud para descargar los archivos fuente ts devuelve la versión no actualizada (http://localhost:1198/xxx.ts por ejemplo)

Parece que el problema se soluciona parcialmente después de un reinicio completo (Windows 8, si importa), los archivos fuente se actualizan en Chrome, pero una vez que los vuelvo a cambiar, aparece el mismo problema.

Otra solución fue usar el modo incógnito, ya que parece que es un problema de caché.

Mi pregunta:

¿El almacenamiento en caché de archivos TypeScript de esa manera es causado por un problema en las configuraciones del proyecto (aunque funcionaba antes), o esto es un error en la nueva versión de Chrome?

Respuesta #1

También estoy experimentando el mismo problema. Resolví este problema marcando la opción 'Desactivar caché' en las herramientas de depuración de Chrome.

Mi segundo problema, escribí muchas clases en el mismo archivo. Dividí cada clase en un archivo separado.

Respuesta #2

Resolví esto eliminando los archivos en caché manualmente. Esto se puede hacer a través de la configuración de Chrome:

  1. Haz clic en Personalizar y controlar Google Chrome - el icono de menú de hamburguesa en la esquina superior derecha de la ventana del navegador.
  2. Selecciona Configuración cerca de la parte inferior del menú.
  3. Desplázate hacia abajo y haz clic en el enlace Mostrar configuración avanzada....
  4. Haz clic en el botón Borrar datos de navegación....
  5. Marca Imágenes y archivos en caché. Las demás casillas pueden dejarse sin marcar.
  6. Haz clic en el botón Borrar datos de navegación.

La casilla 'Desactivar caché' en la pestaña de red no funcionó para mí, ni tampoco un Ctrl+F5.

Respuesta #3

Si estás sirviendo desde IIS, hemos deshabilitado manualmente la caché en nuestro archivo web.config:

<system.webServer>

    <httpProtocol>

      <!--TODO: Remove this block for production (//TODO: Remove this block for production) -->
      <customHeaders>
        <!--DISABLE CACHE-->
        <add name="Cache-Control" value="no-cache, no-store, must-revalidate" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="0" />
      </customHeaders>

    </httpProtocol>
</system.webServer>     

Artículos relacionados