Css和Js捆绑,IController异常

时间:2014-01-21 11:45:11

标签: asp.net-mvc-4 bundle

我正在尝试创建一堆JS和CSS文件。我的文件夹结构是这样的:

  
      
  1. 〜   
        
    1. 脚本   
          
      1. A
      2.   
      3.   
      4. C
      5.   
    2.   
    3. 内容   
          
      1. CSS   
            
        1. ACSS
        2.   
        3. BCSS
        4.   
        5. CSS
        6.   
      2.   
      3. IMG
      4.   
    4.   
  2.   

我从MVC Central中提取了一些帮助,并将此代码添加到我的项目中:

bundles.Add(new ScriptBundle("~/bundles/A/AAA").Include(
                    "~/Scripts/A/jquery-{version}.js");
bundles.Add(new ScriptBundle("~/bundles/B/BBB").Include(
                    "~/Scripts/A/jquery-{version}.js");
bundles.Add(new StyleBundle("~/Content/CSS/ACSS").Include("
                     ~/Content/CSS/ACSS/MyCss-*"));

但是它返回了404例外:

  

System.Web.HttpException(0x80004005):未找到路径'/ bundles / A / AAA'的控制器或未实现IController。

编辑:我已在Global.asax文件中注册了我的套装。所以至少我没有犯学生错误。

BundleConfig.RegisterBundles(BundleTable.Bundles);

导致此错误的错误是什么?

1 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,最后似乎从未调用过System.Web.Optimization.PreApplicationStartCode.Start方法,因此捆绑包的路径仍然由通常的MVC路由处理。

我的修复方法是在网站的Global.asax.cs文件的Application_Start方法中手动调用它:

protected void Application_Start(object sender, EventArgs e)
{
    //other code startup code here

    System.Web.Optimization.PreApplicationStartCode.Start();
}

这样,对bundle的传入请求由System.Web.Optimization.BundleHandler ProcessRequest方法处理。

要更详细地了解代码如何在幕后工作(或应该做...),值得一看:http://beletsky.net/2012/04/new-in-aspnet-mvc4-bundling-and.html