我有这个:
bundles.Add(new StyleBundle("~/Content/Styles/Default").Include("~/Content/Styles/Default/Site.css"));
它创造了这个:
<link href="/Content/Styles/Default?v=HG5hShy6_NaqI7SUDWQuc6zijexRxZooKF4ayIgK5tY1" rel="stylesheet">
现在,我在我的网络服务器上启用了目录浏览,当我点击该样式路径时,它会将我移动到目录,而不是文件!为什么呢?
更新:我仍然没有设法解决这个问题,当我进入链接http://myserver/Content/Styles/Default?v=HG5hShy6_NaqI7SUDWQuc6zijexRxZooKF4ayIgK5tY1
时我得到的是一个文件列表(如在ftp上)
答案 0 :(得分:8)
首先看一下这个article
Bundling是ASP.NET 4.5中的一项新功能,可以轻松实现组合 或将多个文件捆绑到一个文件中。你可以创建CSS, JavaScript和其他捆绑包。文件越少意味着HTTP请求越少 这可以提高首页加载性能。
请求
http://localhost/MvcBM_time/bundles/AllMyScripts?v=r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81
用于捆绑AllMyScripts并包含查询字符串对 V = r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81。
查询字符串v有 值标记,它是用于缓存的唯一标识符。只要 捆绑包不会更改,ASP.NET应用程序将请求 AllMyScripts使用此令牌捆绑。如果捆绑中的任何文件 更改后,ASP.NET优化框架将生成一个新令牌, 保证浏览器对捆绑包的请求将获得最新的 束
这是如何添加带文件的目录
bundles.Add(new StyleBundle("~/jQueryUI/themes/baseAll")
.IncludeDirectory("~/Content/themes/base", "*.css"));
这是添加多个文件的方法:
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css",
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
答案 1 :(得分:4)
这是一个老问题,但谷歌在我寻找解决方案时指出了我,所以我想我会添加对我有用的东西。
我和你有同样的问题,遇到了另一个我认为相同的问题:
MVC4 - Bundling does not work when optimizations are set to true
我想问题是您将捆绑包放在实际存在的虚拟URL上,但它是一个目录。
更改捆绑路径修复了我遇到的问题。