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



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

默认捆绑包设置注册一些脚本包,其中~/bundles/...作为虚拟路径,以及一些以~/Content/css作为虚拟路径的 CSS。 我的问题是,这不是不一致吗? 拥有像~/bundles/js/...~/bundles/css/...这样的东西不是更有意义吗? 事实上,~/Content目录实际上作为一个真正的目录存在,所以甚至有可能发生名称冲突。 我本以为您希望虚拟捆绑包路径是默认情况下不存在的目录,并且不打算在实际文件系统上创建。~/Content/css用于我不理解的 CSS 捆绑虚拟路径有什么原因吗?

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

最新更新