首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么导致Squishit重新构建包

是什么导致Squishit重新构建包
EN

Stack Overflow用户
提问于 2013-01-08 19:50:33
回答 1查看 1.9K关注 0票数 6

谁能告诉我是什么导致/触发Squishit在生产模式下重建捆绑包?

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

代码语言:javascript
复制
<%= 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文件更改为

代码语言:javascript
复制
<compilation debug="true" targetFramework="4.0" />

然后返回到false

代码语言:javascript
复制
<compilation debug="false" targetFramework="4.0" />

下一次请求页面时,捆绑包将重新构建,但我想知道:

a) Squishit如何决定是否应该构建或重建特定的包

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-10 00:40:37

SquishIt实际上并不决定是否应该构建或重建特定的包-如果包存在于SquishIt的缓存中,它就会假设文件仍然在那里。这是经过设计的,因为每次访问包缓存时检查文件系统都会变得非常昂贵。

因为包被缓存在HttpRuntime.Cache中,所以您可以通过从缓存中清除相关项来强制重构。添加的所有项目都使用前缀"squishit_“,之后可以使用"css”或"js“来描述资产类型。任何清除缓存的操作都应该导致包被重新构建,包括站点重置(您的web.config更改将触发此操作)。如果你需要一种后门的方式来在运行时控制它,也许可以修改像this这样的东西来满足你的需要。

另一件会导致包重新构建的事情是对其内容中包含的一个文件的更改。这是在最初将包添加到缓存时通过CacheDependency进行控制的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14214314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档