テーマにスタイル バンドルを使用する asp.net MVC4 Web アプリケーションがあります。私はそのような物理的なテーマのフォルダ構造を持っています...
Themes\
_Base\
Theme1\
Theme2\
...\
各テーマ フォルダーには、任意の数の 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);
...しかし、それは役に立たないようです。を作成するTheme3\
と、別の呼び出しがトリガーされませんBundleConfig.RegisterBundles
。新しいテーマが認識されるようにするには、IISRESET を実行したり、アプリケーション プールをリサイクルしたりする必要があります。
Application_Start が発生した後にバンドルを動的に追加する方法はありますか?