Javascript 是否可以从服务器启动我的域的浏览器缓存清理?

Javascript 是否可以从服务器启动我的域的浏览器缓存清理?,javascript,asp.net-mvc,iis,browser-cache,Javascript,Asp.net Mvc,Iis,Browser Cache,是否可以从服务器启动我的域的浏览器缓存清理 我看到很多人建议使用JavaScript清除浏览器缓存可能会带来安全挑战。但是,如果我从部署站点的服务器上清除仅与我的域(www.example.com)相关的浏览器缓存,该怎么办 我的要求是,我应该能够根据需要从浏览器缓存中清除.js、.css和.jpg文件。我当前的框架并不是为了实现基于令牌的查询字符串而设置的,这样服务器端的每一个更改都会反映在这些资源的url中,从而使浏览器相信这是一个新资源。当然,我可以做所有艰苦的工作来改变我的框架,以反映这

是否可以从服务器启动我的域的浏览器缓存清理

我看到很多人建议使用JavaScript清除浏览器缓存可能会带来安全挑战。但是,如果我从部署站点的服务器上清除仅与我的域(www.example.com)相关的浏览器缓存,该怎么办

我的要求是,我应该能够根据需要从浏览器缓存中清除.js、.css和.jpg文件。我当前的框架并不是为了实现基于令牌的查询字符串而设置的,这样服务器端的每一个更改都会反映在这些资源的url中,从而使浏览器相信这是一个新资源。当然,我可以做所有艰苦的工作来改变我的框架,以反映这一变化,但我想知道是否已经有一个既定的方式来实现这一点


如果重要的话,那么我的环境基于Windows平台(ASP.Net MVC,IIS)。

使用.htaccess防止浏览器缓存

 <FilesMatch "\.(html|htm|js|css)$">
   FileETag None
  <ifModule mod_headers.c>
   Header unset ETag
   Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
   Header set Pragma "no-cache"
   Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
  </ifModule>

FileTag无
标题未设置ETag
标题集缓存控制“最大年龄=0,无缓存,无存储,必须重新验证”
标题集Pragma“无缓存”
标题集过期“1984年1月11日星期三05:00:00 GMT”

我希望这对你有帮助

当然,我可以做所有艰苦的工作来改变我的框架,以反映 但我想知道是否已经有一个既定的方法 实现这一目标的必要性

不,你没有必要做所有的艰苦工作。我会处理的。您唯一需要做的就是创建适当的bundle并在Global.asax中注册它们

创建捆绑包-

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        ScriptBundle bundle = new ScriptBundle("~/bundles/jquery");
        bundle.Include("~/Scripts/jquery-{version}.js");
        bundle.Include("~/Scripts/_references.js");

        bundles.Add(bundle);
    }
}
然后在Global.asax中注册-

BundleConfig.RegisterBundles(BundleTable.Bundles);
在浏览器中呈现时,JQuery捆绑包的URL中将包含版本

<script src="/bundles/jquery?v=PsWsn1syKMUFBUcJusJPfq6HqYqANhiRR1uZJvzFJ-c1"></script>

如果您更改JQuery文件中的一些代码,那么将为捆绑包分配一个新的版本号


此方法将负责浏览器在更改时获取更新的文件。

“如果有必要,那么我的环境基于Windows平台(ASP.Net MVC,IIS)”。。。