2014-01-21 49 views
4

我想创建一个JS和CSS文件的捆绑。文件夹结构我已经是这样的:Css和Js捆绑,IController异常

    1. 脚本
      1. Ç
    2. 内容
      1. CSS
        1. ACSS
        2. BCSS
        3. CSS
      2. IMG

我摘录了一些帮助的形式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-*")); 

但是it'ss返回404异常:

System.Web.HttpException(0X80004005):用于路径控制器 '/捆绑/ A/AAA' 没有找到,或者不执行一个IController。

编辑:我已经在Global.asax文件中注册我的包。所以至少我不会犯一个男生错误。

BundleConfig.RegisterBundles(BundleTable.Bundles); 

我做错了什么导致这个错误?

+0

的可能重复[捆绑失败,因为路径误认为是控制路径] (http://stackoverflow.com/questions/20195254/bundling-fails-because-path-mistaken-for-a-controller-path) – CodeCaster

+1

不知道为什么这个编辑被接受...已经使问题更难回答。 – Rushyo

+0

@CodeCaster,我不会让那个男生出错。 – user3106936

回答

3

我有一个类似的问题,最终它似乎没有被调用System.Web.Optimization.PreApplicationStartCode.Start方法,所以bundle的路径仍然由正常的MVC路由处理。

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

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

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

这样的包传入的请求是由System.Web.Optimization处理.BundleHandler ProcessRequest方法。

对于在代码中的引擎盖下是如何工作的更详细的研究(或应该做......)这是值得在这里:http://beletsky.net/2012/04/new-in-aspnet-mvc4-bundling-and.html