Asp.net 如何仅使用Web服务器中的配置使浏览器缓存无效?
很长一段时间以来,我一直在更新服务器上的Asp.net 如何仅使用Web服务器中的配置使浏览器缓存无效?,asp.net,iis,browser-cache,Asp.net,Iis,Browser Cache,很长一段时间以来,我一直在更新服务器上的ASP.NET页面,但从未找到正确的方法来在CSS和图像等文件上显示更改 我知道如果在URL中添加了内容,浏览器会认为该文件是另一个文件: <img src="/images/myLogo.png?v=1"/> 或者更改其名称: <img src="/images/myLogo.v1.png"/> 不幸的是,它看起来并不正确。在一个例子中,如果我正在使用App\u主题,则此文件夹中的文件会自动插入页面,我无法轻松更改UR
ASP.NET
页面,但从未找到正确的方法来在CSS
和图像等文件上显示更改
我知道如果在URL
中添加了内容,浏览器会认为该文件是另一个文件:
<img src="/images/myLogo.png?v=1"/>
或者更改其名称:
<img src="/images/myLogo.v1.png"/>
不幸的是,它看起来并不正确。在一个例子中,如果我正在使用App\u主题
,则此文件夹中的文件会自动插入页面,我无法轻松更改URL
所以我的问题是:
当我在服务器上发布deASP.NET应用程序
时,向IIS
发出文件已更改的信号(然后通知浏览器)的正确方式是什么?它不是自动的吗?我应该在IIS
中更改一些配置,或者在代码中进行一些“修饰”吗
我已经在这里尝试了很多问题,比如、、甚至,但是没有一个问题实际上需要另一种方法,即您必须在代码中手动处理它,而不是在IIS
或ASP.NET
配置中
我能找到的最接近的地方是他们设置了过期时间,但不是基于文件被更新的事实。相反,他们使用数天或数小时来缓存这些文件,以便即使未做任何更改也能进行更新
我想知道IIS
或ASP.NET
是否提供了与此相关的内容,是否会自动发送到浏览器,告知文件已更改。是否可能/内置?您必须更新浏览器端缓存的项的选项有:
更改文件名
添加url参数
将其在缓存中放置有限的时间(如几个小时)
比较创建日期和时间
用eTag发出信号
使用这三个选项可以避免对每个项目调用一个服务器,但第三个选项会在一段时间后再次加载它
对于其他服务器,您必须对服务器进行一次调用,以查看是否需要再次加载它
所以你不能拥有这里的一切,没有正确的方法,你需要选择对你来说最好的,你能做的。从客户端的角度来看,(1)和(2)选项的速度更快
对您的问题的直接回答是使用eTag,或者文件创建的日期时间比较,但是如果您这样做,只需调用服务器,就可以获得返回的大小
更多链接:
你可以找到更多