谁能告诉我是什么原因导致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")
%>
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除文件包文件,则不会重新创建.我通过反复试验发现,如果我将web.config文件更改为
<compilation debug="true" targetFramework="4.0" />
Run Code Online (Sandbox Code Playgroud)
然后回到假
<compilation debug="false" targetFramework="4.0" />
Run Code Online (Sandbox Code Playgroud)
下次请求页面然后重建包,但我想知道:
a)Squishit如何决定是否应该建造或重建特定的捆绑
b)如果有一种公认的方法可以重置Squishit来重建所有捆绑包 - 例如在缓存清理或站点更新之后.
谢谢.
SquishIt并不真正决定是否应该构建或重建特定的bundle - 如果SquishIt的缓存中存在一个bundle,它假定文件仍然存在.这是设计使然,因为每次访问捆绑缓存时检查文件系统都会非常昂贵.
由于捆绑包在HttpRuntime.Cache中缓存,因此您可以通过清除缓存中的相关项来强制重建.添加的所有项目都使用"squishit_"前缀,之后可以使用"css"或"js"来描述资产类型.清除缓存的任何内容都应该导致重建捆绑包,包括站点重置(web.config更改引发的).如果你需要一个后门方法来在运行时控制它,可以修改这样的东西以满足你的需要.
导致捆绑重建的另一件事是对其内容中包含的其中一个文件的更改.当捆绑包最初添加到缓存时,这通过CacheDependency进行控制.
| 归档时间: |
|
| 查看次数: |
1744 次 |
| 最近记录: |