ASP MVC - 捆绑创建目录路径而不是文件路径

时间:2013-02-24 04:47:58

标签: asp.net asp.net-mvc asp.net-mvc-3

我有这个:

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上)

2 个答案:

答案 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上,但它是一个目录。

更改捆绑路径修复了我遇到的问题。