ASP.NET捆绑 - 默认虚拟路径?

时间:2012-10-25 09:03:12

标签: asp.net bundle asp.net-optimization web-optimization

据我所知(因为坦率地说System.Web.Optimization上的文档非常稀疏),捆绑在ASP.NET中的工作方式是注册一组文件(Javascript或CSS,对应{{1 }和ScriptBundle),并将它们与虚拟路径相关联;例如,StyleBundle用于所有jQuery UI脚本。稍后,当您在非调试模式下运行时,ASP.NET可以缩小这些文件,并且缩小版本将在您为该软件包指定的虚拟路径上提供。

默认的bundle setup注册了一些脚本包,其中~/bundles/jqueryui为虚拟路径,一些CSS为~/bundles/...为虚拟路径。我的问题是,这不一致吗?拥有像~/Content/css~/bundles/js/...这样的东西会不会更有意义?实际上,~/bundles/css/...目录实际上是作为真实目录存在的,因此甚至存在名称冲突的可能性。我原以为你希望你的虚拟包路径是默认存在的目录,并不打算在实际的文件系统上创建。是否有一些理由将~/Content用于我不理解的CSS捆绑虚拟路径?

1 个答案:

答案 0 :(得分:7)

很好的问题,短篇小说一般来说根本不重要。但是,某些脚本文件和CSS依赖于它们在磁盘上的物理位置,因为它们使用相对路径来引用其他内容。例如,您在新的ASP.NET 4.5项目中查看默认的jQuery UI包,您会发现它具有相当长的路径。那是因为jQuery的CSS具有对某些图像文件的相对引用。要使这些路径正确解决,路径很重要,否则“..”之类的东西不会到达正确的父目录。