gpt4 book ai didi

asp.net - 是什么导致 Squishit 重建 bundle

转载 作者:行者123 更新时间:2023-12-04 18:11:06 25 4
gpt4 key购买 nike

谁能告诉我是什么原因/触发了 Squishit 在生产模式下重建包?

例如,如果我创建以下包,则会按预期创建文件“Site.Master_{GUID}.css”。

<%= Bundle.Css()
.Add("~/css/reset.css")
.Add("~/css/typography.css")
.Add("~/css/styles.css")
.Add("~/MasterPages/Site.Master.css")
.Render("~/Cache/Site.Master_#.css")
%>

但是如果我删除文件包文件,它就不会重新创建。我发现,通过反复试验,如果我将 web.config 文件更改为
<compilation debug="true" targetFramework="4.0" />

然后回到假
<compilation debug="false" targetFramework="4.0" />

下次请求页面时,会重新构建包,但我想知道:

a) Squishit 如何决定特定的 bundle 是应该构建还是重建

b) 如果有一种公认的方法可以重置 Squishit 以重建所有包 - 例如在缓存清理或站点更新之后。

谢谢。

最佳答案

SquishIt 并没有真正决定是否应该构建或重新构建特定的包——如果包存在于 SquishIt 的缓存中,它假定文件仍然存在。这是设计使然,因为每次访问包缓存时检查文件系统的成本会非常高。

由于捆绑包缓存在 HttpRuntime.Cache 中,您可以通过从缓存中清除相关项目来强制重建。所有添加的项目都使用前缀“squishit_”,之后可以使用“css”或“js”来描述 Assets 类型。清除缓存的任何内容都应导致重新构建包,包括站点重置(您的 web.config 更改会触发)。如果您需要一种后门方式来在运行时控制它,可能类似于 this可以修改以满足您的需要。

导致包被重建的另一件事是对其内容中包含的文件之一的更改。当捆绑包最初添加到缓存时,这是通过 CacheDependency 控制的。

关于asp.net - 是什么导致 Squishit 重建 bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214314/

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