我正在开发一个 Web 应用程序,该应用程序使用System.Web.Optimization
库将许多 js 脚本打包成包。
为了减少第一批用户的响应时间,我准备了所有捆绑包Application_Start
并强制将它们添加到缓存中。当然,这增加了Application_Start
回报的时间。
我设法将结果保存GenerateBundleResponse()
到文件中,然后将这些文件的内容加载到缓存中Application_Start
,但它需要运行应用程序两次:第一次“冷”启动准备脚本并将它们保存到文件中,而第二次可以使用准备好的脚本并快速启动。
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;
}
}
问题是:我如何准备一些实用程序或脚本中的捆绑包以部署在远程机器上,以免启动应用程序两次?System.Web.Optimization 是否有任何替代方案可以在 Web 应用程序上下文之外运行?谢谢!