我正在使用MVC3,Razor,C#,EF4.1,MSSQL2008
我已经实施了一种将文件上传到网络服务器的机制"上传"文件夹中。
我遇到的问题是当用户返回"上传"看来,图像仍然是旧图像。这可能与我使用用户组织的PK作为文件名即100.png这一事实有关。因此,交换图像将产生另一个100.png,即覆盖原始图像。如果我使用GUID,这可以防止大量垃圾文件。然而,浏览器认为没有任何改变,所以加载它,我想,从缓存中加载。
我的剃刀代码是:
if (File.Exists(Server.MapPath("~/Uploads/" + strImageFileName)))
{
<p><img alt="Current Image" src="@Href("~/Uploads/" + strImageFileName)"/> </p>
}
else
{
<p><img alt="Current Image" src="@Href("~/Uploads/NoImageFile.png")"/> </p>
}
如果我遇到这个问题,那么Shift Refresh通常会完成这项工作,尽管我希望这是自动的。有没有办法通过代码强制刷新,因此始终显示最新的图像。出于某种原因,我们确实在Chrome上遇到了更多问题。
思想?
提前致谢。
答案 0 :(得分:1)
更改链接引用的url似乎是使用AJAX的轻量级解决方案。
http://www.immense.net/force-update-cached-files-images-favicon/
通过添加任意类似的版本号。浏览器将使用当前版本更新兑现图像。
<img alt="Current Image" src="@Href("~/Uploads/" + strImageFileName + Version )"
您可能希望使用操作将图像通过直接网址返回到图像。如果你还没有这样做。