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