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



我有这个:

bundles.Add(new StyleBundle("~/Content/Styles/Default").Include("~/Content/Styles/Default/Site.css"));

它创造了这个:

<link href="/Content/Styles/Default?v=HG5hShy6_NaqI7SUDWQuc6zijexRxZooKF4ayIgK5tY1" rel="stylesheet">

现在,我在Web服务器上启用了目录浏览,当我单击该样式路径时,它会将我移动到一个目录,而不是文件!为什么?

更新:我仍然没有解决这个问题,当我访问链接http://myserver/Content/Styles/Default?v=HG5hShy6_NaqI7SUDWQuc6zijexRxZooKF4ayIgK5tY1时,我得到的只是一个文件列表(就像在ftp上)

首先来看一下这篇文章

捆绑是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"));

这是一个老问题,但谷歌在我搜索解决方案时把我指向了这里,所以我想我会添加对我有用的内容。

我和你有同样的问题,遇到了另一个问题,我相信也是一样的:

MVC4-当优化设置为真正的时,绑定不起作用

我想问题是你把捆绑包放在一个实际存在的虚拟URL上,但它是一个目录。

更改束路径解决了我遇到的问题。

最新更新