如何缓css、图像和js?
-
21-09-2019 - |
题
我喜欢有图片,css和javascript缓存的客户的侧对他们的浏览器,当他们载了一个网页。有这么多不同类型的高速缓存我困惑为哪些用asp.net 视.
它还有可能有他们的浏览器检查新的或修改版本,这些文件?
谢谢!
解决方案
浏览器照顾这个自动为您,其实。你必须去你的出路,让他们不缓存CSS,JS,HTML和图像。
我没那么熟悉ASP MVC,但我认为他们缓存类型你的想法是指令缓存为您创建的动态输出服务器端?
其他提示
您需要在服务器上设置缓存控制标头。你可以在你的web.config坚持这样做:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
</system.webServer>
这将现在告诉浏览器,甚至检查上的任何静态的新内容30天。
有关第二个问题,提供增加查询字符串到内容的一些机制。在我目前的项目中,我们压缩和结合,JavaScript和CSS作为构建的一部分。将在页面中的链接时,是如下:
<script src="/Resources/Javascript/Combined.js?v=2.2.0.1901" type="text/javascript"></script>
在查询字符串是Major.Minor.0.Changeset数目,并且改变随时我们推构建,造成客户端重新获取它。完全相同的事情发生在他们的<link>
元件的样式表。
@保罗克雷西和@Salsa都是正确的,浏览器将处理由默认缓存,只要该链路是相同的。
至于你提到的这个时候你需要,你有没有保证客户端的浏览器会检查是否有更新的版本更新这些文件提出了一个问题。在许多情况下,他们只要这样做,其可以创建一个照出的用户体验的时间已经过去了一个固定的量之后。
有一些已经问本网站为如何处理,提醒客户端浏览器的刷新缓存。总之,它们都依赖于当您更改文件的内容改变的链接。
可以附加一个参数的URL,将仅用于高速缓存的目的,例如:
<script src="/myJavascript.js?version=4"></script>
然后,只需更改版本号当您更改的内容,并需要强制客户端刷新ALA的这个答案。
这是最好的IIS或在你的配置文件中完成的 - 确保你的CSS / JS /图像设置为永不过期
当你从你的代码中引用他们的话,建议附加版本或集结日期的文件名,例如的script.js?20100120,这样,当你来到我身边来改变它们,你只需要改变的版本从所有已缓存它的浏览器强制刷新。
客户端缓存是自动处理通过浏览器时 适当设置 Cache-Control头 和置网。config。这样的:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00.00:10:00" />
</staticContent>
</system.webServer>