gpt4 book ai didi

javascript - squishit 给出 304(未修改)而不是 200(来自缓存)

转载 作者:行者123 更新时间:2023-11-29 17:23:54 25 4
gpt4 key购买 nike

我正在使用“SquishIt”来组合我的 .js 和 .css 文件。问题是当所有其他资源都是 200(来自缓存)时,squishit 包会导致 304(未更改)。如果我以常规方式放置文件,我会得到想要的 200 结果。我的代码示例:

@MvcHtmlString.Create(@Bundle.JavaScript().Add("~/Scripts/Libs/jquery.cookie.js").Add("~/Scripts/Libs/jquery.dynatree.min.js").Add("~/Scripts/Libs/jquery.json-2.3.min.js").Add("~/Scripts/Libs/jsrender.js").Add("~/Scripts/Libs/jstorage.min.js").Add("~/Scripts/Common/utils.js").Add("~/Scripts/DataServices/AccountDataServices.js").Add("~/Scripts/AccountSelection.js").WithMinifier<SquishIt.Framework.Minifiers.JavaScript.MsMinifier>().Render("~/Scripts/AccSelectionscriptBandle_#.js"))

结果:

enter image description here

编辑:我正在使用“Debug=false”;所有其他资源都是200(来自缓存)

最佳答案

我相信您走在正确的轨道上,但您需要更进一步,为您的 clientCache 设置添加一个选项 (cacheControlCustom="must-revalidate"):

    <staticContent>
<!-- A clients cache will expire 90 days after it is loaded -->
<!-- each static item is revalidated against the server to see if the LastModifiedDate is different than the If-Modified-Since date-->
<!-- http://msdn.microsoft.com/en-us/library/ms689443.aspx -->
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" cacheControlCustom="must-revalidate"/>
</staticContent>

cacheControlCustom 强制检查服务器以比较特定静态文件的 lastModifiedDate 和 If-Modified-Since。设置 cacheControlMaxAge 只会让你走到这一步,尤其是当你修改服务器上的文件时,你的客户端可能不会自动重新拉取文件。您的设置(500 天)只会在文件在客户端机器上保存 500 天后才会提取文件。如果那是你的 Intent ,那就太好了。 (此外,SquishIt 会掩盖一些缓存行为,因为更改包内的 js/css 文件会生成不同的哈希名称。)

评论中的 Url 可能会解释更多来自 MSDN 的内容。

关于javascript - squishit 给出 304(未修改)而不是 200(来自缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10674726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com