6

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

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

4

1 回答 1

7

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

于 2012-12-15T17:10:14.653 回答