Javascript 阻止html页面浏览缓存

Javascript 阻止html页面浏览缓存,javascript,html,angularjs,caching,Javascript,Html,Angularjs,Caching,我遇到的问题是浏览器正在缓存部分文件(*.html)。虽然开发它不是一个大问题,但一旦我部署了应用程序,客户端就会看到旧页面,直到清除缓存或按ctrl-F5键 我尝试过指定元标记(CACHE-CONTROL、EXPIRES),但仍然看到这些页面被拾取 从chrome开发者工具中的缓存(也许我在这里遗漏了什么?。 我打算尝试在url前面添加一些随机数,如 <div ng-include src="'views/test.html?i=1000'"></div> 但后来

我遇到的问题是浏览器正在缓存部分文件(*.html)。虽然开发它不是一个大问题,但一旦我部署了应用程序,客户端就会看到旧页面,直到清除缓存或按ctrl-F5键 我尝试过指定元标记(CACHE-CONTROL、EXPIRES),但仍然看到这些页面被拾取 从chrome开发者工具中的缓存(也许我在这里遗漏了什么?。

我打算尝试在url前面添加一些随机数,如

<div ng-include src="'views/test.html?i=1000'"></div>

但后来,James cook正确地指出,这种方法会一次又一次地用partials填充缓存

我在某个地方读到,最好在服务器的头中设置meta标记,但我不知道怎么做?我想在http拦截器中做这件事?也许在这个http拦截器的请求或响应中添加元标记


有什么办法吗?或者是好主意还是坏主意?或任何其他防止浏览器缓存部分页面的方法?

要防止缓存,在许多情况下,仅从客户端完全关闭它是不可能的。您必须以正确的方式配置服务器,以便它生成正确的HTTP头

但是在的帮助下,您可以将html片段从单个文件移动到index.html文件中的脚本标记中。这也将减少应用程序需要进行的AJAX调用的数量。 使用index.html中的模板,您只需确保index.html未被缓存

以下是对它的讨论:

如果其他人遇到同样的问题,我最终添加了一个httphandler,并在响应头中添加了“缓存控制”和“过期”

public void ProcessRequest(HttpContext context)
    {
        var partial = context.Request.FilePath;

        var filepath = context.Server.MapPath("~/" + partial);

        context.Response.AddHeader("Content-Disposition", "filename=\"" + Path.GetFileName(filepath) + "\"");

        // To make sure partial html pages are not cached by browser(s)
        context.Response.AddHeader("Cache-Control", "No-Cache");
        context.Response.AddHeader("Expires", "0");
        context.Response.ContentType = MimeTypesHelper.GetMimeType(filepath);
        context.Response.WriteFile(filepath);
    }

告诉我们一些你的后端。不完全确定你所说的后端是什么意思,以及它与浏览器缓存的关系?但是“后端”是在mongoDB上的,前端是Asp.net Mvc和AngularJS的混合,如果你的其他头都很正常,那么使用过期头就可以了。我试过使用-1和0过期,但在我的情况下似乎不起作用。我确实有很多部分,我不想一开始就下载它们,但会考虑更多关于这个想法!