2017-10-05 2 views
0

ich eine einzige Seite Web-App haben und ich verwende Versionierung das Skript und andere Ressourcen sprengen zwischenspeichern, die Bedürfnisse App, dh in default.htm verknüpfe ich wie folgt aus:asp.net core 2 statische Dateien Cache-Zerschlagung Standarddokument default.html?

<script src="js/index.js?plv=1.1"></script> 

Dieses feine, aber das Problem funktioniert I run in ist, dass die Seite default.htm selbst vom Browser zwischengespeichert wird, damit die neue default.htm nicht gelesen wird und das Update nicht ausgelöst wird.

Die Home-Seite wird von der Middleware app.UseDefaultFiles() bedient.

Ich denke eine schnelle und schmutzige Möglichkeit, dieses Problem zu beheben, ist auf jedem Code-Update, das ich veröffentliche, ich wechsele zwischen index.htm und default.htm als das Standarddokument und benennen Sie das andere um, damit es nicht werden von UseDefaultFiles Middleware abgeholt.

Dies ist jedoch ein manueller Schritt und sicherlich werde ich vergessen, es irgendwann zu tun.

Wie kann ich mit dieser Situation umgehen?

Antwort

0

Die Lösung im Nachhinein offensichtlich war, die Homepage ist das Licht, kein Grund, es überhaupt cachen:

app.UseStaticFiles(new StaticFileOptions 
      { 
       OnPrepareResponse = context => 
       {     
        if (context.File.Name == "default.htm") { 
         context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store"); 
         context.Context.Response.Headers.Add("Expires", "-1"); 
        } 
       } 
      }); 
Verwandte Themen