У меня есть проект ASP.Net MVC, и я хочу реализовать объединение, но все, что я могу найти в Интернете, указывает мне открыть BundleConfig.cs в App_Start, однако этот файл не существует в моем проекте. У меня в этой папке всего три файла: FilterConfig, RouteConfig и WebApiConfig.
Конфигурация пакета не была сгенерирована, когда я создал решение (IIRC вначале был пустым проектом ASP.NET MVC).
Кажется, что это должно быть очень легко сделать, но я просто не могу понять это.
P.S. Просто чтобы уточнить для тех, кто не читает внимательно, это для приложения MVC4/.Net 4.5, созданного с нуля. Решение отмечено ниже.
Ответ 1 · рейтинг 176 · vmg
BundleConfig - это не что иное, как конфигурация пакета, вынесенная в отдельный файл. Раньше это было частью кода запуска приложения (фильтры, пакеты, маршруты настраивались в одном классе)
Чтобы добавить этот файл, сначала вам нужно добавить пакет Microsoft.AspNet.Web.Optimization nuget в свой веб-проект:
Install-Package Microsoft.AspNet.Web.Optimization
Затем в папке App_Start создайте новый файл cs с именем BundleConfig.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);
}
Тесно связанный вопрос: Как добавить ссылку на System.Web.Optimization для приложения MVC-3-converted-to-4< /эм>а>