如何使用iframe动态打开多个pdf文件(根据客户端点击的内容一次一个)但不将其缓存在客户端计算机上,因为如果服务器上的文件内容发生了变化(添加了新的)例如,除非他/她清除浏览器的缓存文件,否则客户端仍将获得旧版本
答案 0 :(得分:2)
在响应中添加标头以避免在下游服务器中缓存
HttpContext.Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
HttpContext.Response.AppendHeader("Pragma", "no-cache");
HttpContext.Response.AppendHeader("Expires", "0");
答案 1 :(得分:2)
如果您使用唯一查询字符串参数将pdl文件的后缀添加到pdf文件后,只要更改了pdf文件,您就会更改该文件,浏览器将单独缓存该文件的每个版本
示例:
更改http://site/myFile.pdf
到http://site/myFile.pdf?v=f955b055-d551-4762-8313-a2417dc70568
答案 2 :(得分:1)
您需要禁用文件的响应缓存。对于ASP.NET MVC,它简单如下:
[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] // will be applied to all actions in Controller, unless those actions override with their own decoration
public class FilesController : Controller
{
public ActionResult GetFile(string id)
{
return File();//do file
}
}