Saya memiliki beberapa konten statis dengan Max-Age
header kontrol cache yang terpasang sehingga klien akan melakukan cache konten statis. Namun, IIS 7.5 masih mengirimkan header ini ketika ada respons kesalahan yang menyarankan klien untuk melakukan cache ini.
Itu memiliki efek negatif bahwa beberapa proksi kemudian akan men-cache respons kesalahan itu. Saya bisa Vary: Accept,Accept-Encoding
tetapi ini tidak benar-benar mengatasi masalah root Max-Age
keluar pada respons kesalahan.
Bagian IIS yang relevan saat ini web.config
adalah:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
Apakah ada cara agar saya dapat membuatnya sehingga kami tidak memberi tahu klien atau proksi untuk me-cache kode kesalahan 400/500?
Jawaban:
Saya membuat "suite" uji dasar.
Ketika saya menjalankan tes dengan Web.config minimal pada IIS 7.0 (mode pipeline terintegrasi pada. NET 4.0) semuanya berlalu;
Cache-Control
header respons file tes diatur keprivate
saatAccept
header permintaan tidak cocok dengan fileContent-Type
.Ini membuat saya percaya bahwa Anda memiliki beberapa modul yang mengganggu rutin caching statis IIS atau IIS 7.0 dan 7.5 berbeda di sini.
Berikut adalah file yang saya gunakan (tanpa
some-script.js
file yang kosong):Web.Config:
test.html:
sumber
Anda harus menentukan jenis konten apa yang akan Anda cache. misalnya Anda bisa men-cache Script, css, image ..etc. jadi gunakan
<location path ="Scripts">
tag sebelum<system.webServer>
tag. jadi konfigurasi web Anda terlihat seperti ini.sumber