System.Web.Optimization
ライブラリを使用してバンドルにパックされた多くのjsスクリプトを持つWebアプリケーションに取り組んでいます。
最初のユーザーの応答時間を短縮するために、すべてのバンドルを準備してApplication_Start
強制的にキャッシュに追加します。もちろん、それApplication_Start
はリターンの時間を増やしました。
の結果GenerateBundleResponse()
をファイルに保存し、これらのファイルのコンテンツを のキャッシュにロードすることができApplication_Start
ましたが、アプリケーションを 2 回実行する必要があります。最初の「コールド」スタートではスクリプトを準備してファイルに保存しますが、2 回目は準備されたスクリプトを使用すると、非常に高速に起動します。
public abstract class FileBasedBundle : Bundle
{
public override BundleResponse GenerateBundleResponse(BundleContext context)
{
if (File.Exists(bundlePath))
{
var content = File.ReadAllText(bundlePath);
var fileList = GenerateFileList(context);
return new BundleResponse(content, fileList);
}
var response = base.GenerateBundleResponse(context);
File.WriteAllText(bundlePath, response.Content);
return response;
}
}
問題は、アプリケーションを 2 回起動しないようにするために、リモート マシンに展開するユーティリティまたはスクリプトでバンドルを準備するにはどうすればよいかということです。Web アプリのコンテキスト外で実行する System.Web.Optimization の代替手段はありますか? ありがとう!