Avatar billede djalfe Novice
06. november 2012 - 15:02 Der er 6 kommentarer og
1 løsning

Expire date på css-, js- og statisk img- filer

Hejsa derude
Jeg er igang med at optimere en website, hvor jeg gerne vil sætte expire date på statisk indhold som ikke ændre sig hele tiden.

Har fundet ud af at man kan gøre det generelt for alt via IIS'en under "HTTP Response Headers", men er ikke klar over hvordan jeg specifikt kan fortælle hvilke statisk filer så som file.css, file.js og file.jpg der skal have expire date på sig.

Kan se man kan tilføje "Custome HTTP response Header", hvor man kan sætte name og value.
Er det her man kan fortælle hvilke filer der skal have expire date på eller bedre kan jeg gøre det fra web.config med C# kode koblet på.

Med venlig hilsen
Allan Hougaard Kleist
Avatar billede djalfe Novice
06. november 2012 - 15:04 #1
Er ikke sikker på om jeg er på rette spor :-)
Avatar billede softspot Forsker
06. november 2012 - 15:26 #2
I web.config er der en sektion der hedder system.webserver (som vist kun tolkes, hvis din server kører IIS 7+), hvor det er muligt at indstille clientCache under sektionen staticContent. Det kan være du skal kigge lidt nærmere på den...
Avatar billede softspot Forsker
06. november 2012 - 15:28 #3
Avatar billede djalfe Novice
06. november 2012 - 15:53 #4
ha haa
softspot  >> Du satte mig lige i den rigtige retning, mange tak

web.config:

</configuration>

<location path="PathToFolder">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="UseExpires" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
      </staticContent>
    </system.webServer>
  </location>

</configuration>

Nu er det muligt at cache langt frem i tiden, men hvis f.eks. min stylesheet ændre sig. Hvordan sikre jeg mig så at clienten henter nyeste stylesheet. ??
Er løsningen at man sætter QueryString på, f.eks. all.min.css?v=20121106
Avatar billede softspot Forsker
06. november 2012 - 16:05 #5
Ja, det var da én løsning. Du kunne også helt ændre navnet på dit stylesheet (så får du også versionering :-)).

Jeg må erkende, at jeg ikke er helt afklaret med, hvordan man styrer caching af statisk indhold, da det jo umiddelbart (som du selv erfarer) er lidt ud af egne hænder. Spørgsmålet er, om der findes en indstilling til clientCache-elementet der angiver, at klienten altid skal tjekke serveren inden den beslutter sig for om den cachede version af dokumentet skal benyttes - jeg ved det ikke umiddelbart.
Avatar billede djalfe Novice
06. november 2012 - 16:15 #6
Du har hjulpet mig rigligt til at kunne komme videre, mange tak
Avatar billede softspot Forsker
06. november 2012 - 17:54 #7
Velbekomme :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester