rac*_*cow 7 asp.net asp.net-mvc-4 bundling-and-minification asp.net-optimization
我有一个asp.net MVC4 Web应用程序,它使用样式捆绑主题.我有一个像这样的物理主题文件夹结构......
Themes\
_Base\
Theme1\
Theme2\
...\
Run Code Online (Sandbox Code Playgroud)
每个主题文件夹中都包含任意数量的LESS文件.在我的BundleConfig.RegisterBundles方法中,我有一些逻辑循环每个主题文件夹并为每个创建一个包.System.Web.Optimization的捆绑机制将监视现有捆绑包中的文件和文件夹中的更改并刷新捆绑缓存,这样可以正常工作.
但是,我需要的是将新主题文件夹(即Theme3\)复制到我的Themes根文件夹中的方法,以及应用程序在不必先重新启动它的情况下识别它们.我试过创建一个引用每个文件夹中所有文件的"虚拟"包...
var changeTracking = new StyleBundle(BUNDLE_ROOT);
changeTracking.Transforms.Clear();
changeTracking.IncludeDirectory(THEME_ROOT, "*.less", true);
changeTracking.Transforms.Add(new LessTransform());
changeTracking.Transforms.Add(new CssMinify());
bundles.Add(changeTracking);
Run Code Online (Sandbox Code Playgroud)
......但这似乎没有帮助.当我做的时候Theme3\,它不会触发另一次调用BundleConfig.RegisterBundles.我仍然需要执行IISRESET,回收应用程序池等,以便识别新主题.
有没有什么办法可以在Application_Start发生后动态添加包?
这不是我们明确试图支持的东西,期望的是所有捆绑包都在应用程序启动之前注册。否则,这将在 webfarm 场景中导致问题,其中某些捆绑包并不存在于所有服务器上,从而导致 404。
包缓存依赖项将负责刷新 ASP.NET 缓存中的旧响应,但它不会触发对 RegisterBundles 的另一个调用,该调用是从您的 global.asax 调用的,并且只会在应用程序回收期间调用,就像您提到的那样。
| 归档时间: |
|
| 查看次数: |
2317 次 |
| 最近记录: |