我想为我的网站的静态内容启用缓存。我发现这种方法使用 IIS 缓存控制选项,我猜它在服务器端有效:
<caching>
<profiles>
<add extension=".js" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
<add extension=".css" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
</profiles>
</caching>
我还为静态内容的客户端缓存找到了这个解决方案:
<staticContent>
<clientCache cacheControlMaxAge="7.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
添加上述两个代码后,我已经清除了历史记录并使用了硬刷新。但是当我在 Chrome 控制台中检查网络选项卡时,静态内容的加载时间仍然以秒为单位(不是来自用户缓存)。我不得不说禁用缓存的复选框在开发人员控制台中也未选中。
编辑:更新后kernelCachePlicy
,CacheUntilChange
我曾经netsh http show cachestate
检查过缓存的状态,这是一个示例输出,但浏览器仍然从服务器而不是从本地缓存加载文件。
URL: [PTAH TO A PNG FILE]
Status code: 200
HTTP verb: GET
Cache policy type: User invalidates
Creation time: 2017.11.1:20.41.18:0
Request queue name: MyPool
Content type: image/png
Content encoding: (null)
Headers length: 244
Content length: 1507
Hit count: 5
Force disconnect after serving: FALSE