Mam projekt ASP.Net MVC i chcę realizować łączenia w pakiet, ale wszystko, co mogę znaleźć w internecie kieruje mnie do otwarcia BundleConfig.cs
się App_Start
- jednak ten plik nie istnieje w moim projekcie. Mam tylko trzy pliki w tym folderze: FilterConfig
, RouteConfig
iWebApiConfig
.
Konfiguracja pakietu nie została wygenerowana podczas tworzenia rozwiązania (IIRC był to pusty projekt ASP.NET MVC na początku).
Wygląda na to, że powinno to być naprawdę łatwe, ale po prostu nie mogę tego rozgryźć.
PS Dla wyjaśnienia tym, którzy nie czytają dokładnie, dotyczy to aplikacji MVC4 / .Net 4.5 utworzonej od podstaw. Rozwiązanie zaznaczono poniżej.
asp.net-mvc
asp.net-mvc-4
visual-studio-2013
Politycznie niezależny
źródło
źródło
Odpowiedzi:
BundleConfig
to nic innego jak konfiguracja pakietu przeniesiona do oddzielnego pliku. Kiedyś był częścią kodu startowego aplikacji (filtry, pakiety, trasy były konfigurowane w jednej klasie)Aby dodać ten plik, najpierw musisz dodać
Microsoft.AspNet.Web.Optimization
pakiet NuGet do projektu sieci web:Następnie w folderze App_Start utwórz nowy plik cs o nazwie
BundleConfig.cs
. Oto, co mam w mojej (ASP.NET MVC 5, ale powinno działać z 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")); } } }
Następnie zmodyfikuj swój Global.asax i dodaj wywołanie
RegisterBundles()
wApplication_Start()
:using System.Web.Optimization; protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
Ściśle powiązane pytanie: Jak dodać odwołanie do System.Web.Optimization dla aplikacji MVC-3-Convert-to-4
źródło
Jeśli używasz „MVC 5”, możesz nie widzieć pliku i wykonaj następujące czynności: http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html
Jeśli używasz „ASP.NET 5”, przestał on używać „tworzenia i minifikacji” zamiast tego został zastąpiony przez gulp, bower i npm. Więcej informacji na https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/
źródło