我正在使用 System.Web.Optimization
BundleTable
进行 CSS 和 JavaScript 文件捆绑。我可以通过转到 Chrome 开发人员工具
、Sources
选项卡,然后单击我要保存的 bundle ,然后在代码上单击鼠标右键,然后另存为
(下面的屏幕截图)
我想知道是否有一种方法可以以编程方式保存它们(javascript或.NET,我不介意以太),因为我需要通过将它们与旧版本进行比较来测试捆绑文件中的更改以查看他们是否改变了。最终产品很可能会进行 Selenium 测试。
最佳答案
我自己整理了一下。
public static string GetBundleContents(string virtualPath)
{
OptimizationSettings config = new OptimizationSettings()
{
ApplicationPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath,
BundleTable = BundleTable.Bundles
};
BundleResponse response = Optimizer.BuildBundle(virtualPath, config);
return response.Content;
}
public static void WriteBundlesToDisk(string path)
{
foreach (var bundle in BundleTable.Bundles)
{
var bundleContents = BundleConfig.GetBundleContents(bundle.Path);
File.WriteAllText(string.Format("{0}/{1}.{2}", path, bundle.Path.Split('/').Last(), BundleConfig.GetFileExtensionByBundleType(bundle)), bundleContents);
}
}
public static string GetFileExtensionByBundleType(Bundle bundle)
{
if (bundle is ScriptBundle)
return "js";
else if (bundle is StyleBundle)
return "css";
return "folderBundle";
}
用法:
BundleConfig.WriteBundlesToDisk("c://bundles");
旁注:有一种名为 System.Web.Optimization.DynamicFolderBundle
的 bundle 类型,上面的解决方案无法正确处理它,它会将其另存为 .folderBundle
文件类型。
关于c# - 有没有办法以编程方式导出/保存生成的 javascript 和 css 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389114/