加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 是什么导致Squishit重建捆绑包

发布时间:2020-12-16 07:12:14 所属栏目:asp.Net 来源:网络整理
导读:谁能告诉我是什么原因导致Squishit在生产模式下重建捆绑包? 例如,如果我创建以下包,则会按预期创建文件“Site.Master_ {GUID} .css”. %= Bundle.Css() .Add("~/css/reset.css") .Add("~/css/typography.css") .Add("~/css/styles.css") .Add("~/MasterPage
谁能告诉我是什么原因导致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如何决定是否应该建造或重建特定的捆绑

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

谢谢.

解决方法

SquishIt并不真正决定是否应该构建或重建特定的bundle – 如果SquishIt的缓存中存在一个bundle,它假定文件仍然存在.这是设计使然,因为每次访问捆绑缓存时检查文件系统都会非常昂贵.

由于捆绑包在HttpRuntime.Cache中缓存,因此您可以通过清除缓存中的相关项来强制重建.添加的所有项目都使用“squishit_”前缀,之后可以使用“css”或“js”来描述资产类型.清除缓存的任何内容都应该导致重建捆绑包,包括站点重置(web.config更改引发的).如果你需要一个后门方法来在运行时控制它,可以修改像this这样的东西以满足你的需要.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读