Asp.net 处理缓存的图像?如何让浏览器显示新版本?

Asp.net 处理缓存的图像?如何让浏览器显示新版本?,asp.net,asp.net-mvc,image,browser,Asp.net,Asp.net Mvc,Image,Browser,你好, 加载带有图像(img_01.jpg)的网页时,浏览器将缓存该图像。假设我们更新img_01.jpg并使用相同的名称保存它,当访问同一页面时,缓存中将显示旧图像 我应该如何在ASP.NET MVC中处理这个问题 我知道在普通的ASP.NET(没有MVC)中,必须创建一个额外的组件,该组件将在文件名末尾添加一个随机数。如何在ASP.NET MVC中实现这一点 Bestgrees您可以使用添加过期标题。但它主要取决于浏览器是否正确使用过期标题。它有用吗?您可以使用它添加过期标题。但它主要取决于

你好,

加载带有图像(img_01.jpg)的网页时,浏览器将缓存该图像。假设我们更新img_01.jpg并使用相同的名称保存它,当访问同一页面时,缓存中将显示旧图像

我应该如何在ASP.NET MVC中处理这个问题

我知道在普通的ASP.NET(没有MVC)中,必须创建一个额外的组件,该组件将在文件名末尾添加一个随机数。如何在ASP.NET MVC中实现这一点


Bestgrees

您可以使用添加过期标题。但它主要取决于浏览器是否正确使用过期标题。它有用吗?

您可以使用它添加过期标题。但它主要取决于浏览器是否正确使用过期标题。有帮助吗?

我决定在图像文件名中使用主对象版本号,这将确保最终用户始终看到正确的图像。

我决定在图像文件名中使用主对象版本号,这将确保最终用户始终看到正确的图像。

在C#中,当使用绑定图像控件时,只需将url作为查询字符串。 例如:

浏览器将始终将其视为新请求,并且不会从缓存中获取图像。

在C#中,当您绑定图像控件时,只需将url作为查询字符串。 例如:


浏览器将始终将其视为新请求,并且不会从缓存中获取图像。

hmm,查看您的链接,我确实记得很久以前做过类似的事情。我所做的是在末尾添加一个随机数,如下所示:myimage.jpg?id=[random],这确保了每次都从服务器加载图像。然而,正如本文所暗示的,我从来不需要在IIS上做任何更改。问题是,这是否真的比在实际文件名末尾添加随机字符串更好?最后一个解决方案意味着我们只在新图像得到一个新的随机数(更新)时才下载新图像。添加一个随机字符串会使图像从浏览器的角度成为不同的资源。如果你能接受这些图片的名字(myimage.jpg?id=474484),那也没关系。在某些情况下,这可能不好。这样,您就可以处理浏览器对图像的请求,并在响应中添加过期标题(日期设置为过去)。它会告诉浏览器资源已经过期,下次它会再次从web服务器请求它。嗯,看看你的链接,我记得很久以前做过类似的事情。我所做的是在末尾添加一个随机数,如下所示:myimage.jpg?id=[random],这确保了每次都从服务器加载图像。然而,正如本文所暗示的,我从来不需要在IIS上做任何更改。问题是,这是否真的比在实际文件名末尾添加随机字符串更好?最后一个解决方案意味着我们只在新图像得到一个新的随机数(更新)时才下载新图像。添加一个随机字符串会使图像从浏览器的角度成为不同的资源。如果你能接受这些图片的名字(myimage.jpg?id=474484),那也没关系。在某些情况下,这可能不好。这样,您就可以处理浏览器对图像的请求,并在响应中添加过期标题(日期设置为过去)。它将告诉浏览器资源已过期,下次它将从web服务器再次请求该资源。这是一个非常糟糕的解决方案。缓存的全部思想是提高性能。此解决方案放弃了整个性能优化尝试。这是一个非常糟糕的解决方案。缓存的全部思想是提高性能。此解决方案放弃了整个性能优化尝试。
string  _urlPhoto = "UploadPhoto" + "/" + Imagename + "?" + Guid.NewGuid().ToString();