为什么在我的ASP MVC4应用程序中重定向资源捆绑?

Tim*_*Tim 6 asp.net-mvc resourcebundle asp.net-mvc-4 asp.net-optimization

我正在使用RC,我已经通过NuGet查看了所有内容都是最新的.在我的global.asax.cs中我得到了:

BundleTable.Bundles.AddDefaultFileExtensionReplacements();
BundleTable.Bundles.AddDefaultIgnorePatterns();
BundleTable.Bundles.AddDefaultFileOrderings();

Bundle scripts = new Bundle("~/Scripts");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/css");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的配置而没有任何改进.

然后在我的布局中我得到了:

<link href="@BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts")"> </script>
Run Code Online (Sandbox Code Playgroud)

当页面加载它看起来很体面的网址时:

<link href="/Content/css?v=QAsFYXHCbnaU70oGVxpgi9py9iKQrT9C4BVNdHa7xoI1" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

但该网址重定向到:

/Content/css/
Run Code Online (Sandbox Code Playgroud)

返回404找不到错误...

捆绑重定向...

有人有任何想法吗?

Bey*_*ygi 6

〜/ Scripts和〜/ Content/css虚拟路径已经存在于磁盘上,所以你需要让它们成为一些虚拟网址,让我们说〜/ Scripts/js和〜/ Content/styles就是它,现在很好.

Bundle scripts = new Bundle("~/Scripts/js");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/styles");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);
Run Code Online (Sandbox Code Playgroud)

同样在MVC4中,路由,分发包和过滤器配置已移至

〜/ App_Start /(RouteConfig,BundleConfig,FilterConfig).cs

所以检查你是否有那些,如果是,那么在那里写你的配置.

  • 它看起来像是虚拟路径.我确定我已经看到了一些使用这些路径的例子! (2认同)

Hao*_*ung 4

决定是否处理请求的捆绑模块逻辑不会接管对现有文件或目录的请求。这就是为什么当您的捆绑请求与现有目录(或文件)位于同一虚拟路径时,它们不起作用。