我有一个ASP.Net MVC项目,我想实现捆绑,但我在互联网上找到的所有内容都指示我在BundleConfig.cs
中打开App_Start
- 但是这个文件在我的身上不存在项目。该文件夹中只有三个文件:FilterConfig
,RouteConfig
和WebApiConfig
。
创建解决方案时未生成Bundle配置(IIRC在开始时它是一个空白的ASP.NET MVC项目)。
看起来这应该很容易做到,但我简直无法弄明白。
P.S。只是为那些不仔细阅读的人澄清,这是针对从头开始创建的MVC4 / .Net 4.5应用程序。解决方案标在下面。
答案 0 :(得分:162)
BundleConfig
只不过是捆绑配置移动到单独的文件。它曾经是应用启动代码的一部分(过滤器,捆绑包,过去在一个类中配置的路由)
要添加此文件,首先需要将Microsoft.AspNet.Web.Optimization
nuget包添加到您的Web项目中:
Install-Package Microsoft.AspNet.Web.Optimization
然后在App_Start文件夹下创建一个名为BundleConfig.cs
的新cs文件。以下是我的内容(ASP.NET MVC 5,但它应该适用于MVC 4):
using System.Web;
using System.Web.Optimization;
namespace CodeRepository.Web
{
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
}
}
}
然后修改您的Global.asax并在RegisterBundles()
中添加对Application_Start()
的调用:
using System.Web.Optimization;
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
一个密切相关的问题:How to add reference to System.Web.Optimization for MVC-3-converted-to-4 app
答案 1 :(得分:1)
如果您使用的是“MVC 5”,则可能看不到该文件,您应该按照以下步骤操作:http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html
如果您正在使用“ASP.NET 5”,它已停止使用“捆绑和缩小”,而是由gulp,bower和npm取代。更多信息,请参阅https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/