我正在尝试创建一堆JS和CSS文件。我的文件夹结构是这样的:
- 〜
醇>
- 脚本
- A
- 乙
- C
- 内容
- CSS
- ACSS
- BCSS
- CSS
- 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-*"));
但是它返回了404例外:
System.Web.HttpException(0x80004005):未找到路径'/ bundles / A / AAA'的控制器或未实现IController。
编辑:我已在Global.asax
文件中注册了我的套装。所以至少我没有犯学生错误。
BundleConfig.RegisterBundles(BundleTable.Bundles);
导致此错误的错误是什么?
答案 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