2016-08-10 3 views
0

Ich versuche, eine Datei aus meiner Webanwendung zu cachen. Zur Zeit verwende ich grunt, um die Version auf meine Ressourcen zu setzen: myFile.js? < version>Ressourcen wurden nicht aus dem Cache geladen

Aber in Chrome Konsole, kann ich sehen, dass es nicht aus dem Cache geladen wird:

enter image description here

Das ist mein index.html:

<head> 
    <!-- Meta --> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <meta name="apple-mobile-web-app-capable" content="yes" /> 
    <meta name="mobile-web-app-capable" content="yes"> 

    <!-- Infos --> 
    <link rel="icon" sizes="192x192" href="FrontEnd/Ressources/img/logo-app.png" /> 
    <link rel="shorcut" sizes="192x192" href="Ressources/img/logo-app.png" type="image/x-icon" /> 
    <link rel="apple-touch-icon" href="FrontEnd/Ressources/img/logo-app.png" /> 

    <!-- Javascript --> 
    <script src="FrontEnd/Ressources/js/[email protected]@XXXX-source-version"></script> 
    <script src="FrontEnd/[email protected]@XXXX-source-version"></script> 

    <!-- CSS --> 
    <link rel="stylesheet" media="screen" type="text/css" href="FrontEnd/Ressources/css/[email protected]@XXXX-source-version" /> 
</head> 

Wie kann ich reduzieren Ladezeit und wird es aus dem Cache geladen (vielleicht wie diese Datei)?

enter image description here

+0

Das sieht eher wie ein Zeitstempel als eine "echte" Versionsnummer aus. Haben Sie bei nachfolgenden Anforderungen für die Seite, auf der diese Ressourcen eingebettet sind, diesen Wert bestätigt? – CBroe

+0

Ja, es ist ein Zeitstempelwert, aber dieser Wert ist jedes Mal, wenn ich mein Projekt erstelle, behoben. Ich teste in einer Pre-Prod-Umgebung. Ich bin sicher, dass dieser Wert erhalten bleibt. – Alexandre

+0

Überprüfen Sie die HTTP-Antwortheader. Möglicherweise ist der zugrunde liegende Server nicht ordnungsgemäß eingerichtet, um die erforderlichen Header überhaupt zu generieren. (Ich denke Dinge wie Last-Modified, ETag, Expires, etc.) – CBroe

Antwort

0

können Sie in Google angeben, dass, wenn die Entwickler-Tools geöffnet sind der Cache deaktiviert ist. Vielleicht hast du das überprüft? dev tools window

Das Suffix -version könnte der Cullprit sein, wenn diese Zahl für jede Anfrage geändert wird, wird sie nicht zwischengespeichert. Das ist der einzige Zweck dieses Suffixes: die URL eindeutig zu machen und das Laden einer veralteten Version aus dem Cache zu verbieten. Wenn es gleich ist, sollte es zwischengespeichert werden.

Persönlich überprüfe ich das Caching von Dingen auf einem Nicht-Entwickler-Maschine oder Spin-up eine nicht-optimierte VM. Auf diese Weise bin ich sicher, dass es eine normale Umgebung ist, z. B. eine, die nicht so optimiert ist, dass sie so wenig wie möglich zwischenspeichert.

+0

Das "disble cache" -Kontrollkästchen ist nicht zu überprüfen und ich bin sicher, dass die Version Suffix immer noch das gleiche – Alexandre

+0

@Alexandre: vielleicht eine dumme Frage Aber wie testen Sie das? Wie erfrischst du die Seite? Was geschieht, wenn Sie die Seite laden lassen, ein paar Mal mit der Schaltfläche in der Symbolleiste aktualisieren? Welches Setup verwendest du übrigens? (Client + Server) – Gompje

+0

Ich benutze chrome und aktualisiere meine Seite mit "STRG + F5". Meine Website ist auf WIN SRV 2012 R2 und IIS – Alexandre

Verwandte Themen