Добавяне на новата рамка за уеб оптимизация на ASP.NET към MVC4 проекти след ръчното им надграждане

След ръчно надграждане на ASP.NET MVC проект до MVC4 като използвате тези инструкции, как след това да зададете новите функции за групиране и минимизиране на CSS и JavaScript активи на ASP.NET Web Optimization Framework в MVC4? Шаблоните по подразбиране имат всичко това настроено, но как да го направите на ръка?


person Ed Andersen    schedule 23.08.2012    source източник


Отговори (2)


  • Щракнете с десния бутон върху References, след това върху Manage NuGet Packages и добавете „Microsoft.AspNet.Web.Optimization“ (или въведете Install-Package Microsoft.AspNet.Web.Optimization в конзолата на NuGet).
  • Във вашия файл Web.config добавете следното към <system.webServer>, позволявайки минимизираните пакети да бъдат обслужвани с URL адреси без разширения.
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
  • Във вашата папка App_Start добавете нов клас, наречен BundleConfig.cs. Трябва да изглежда нещо подобно:
using System.Web;
using System.Web.Optimization;

namespace MvcApplication1
{
    public class BundleConfig
    {
        // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                "~/Scripts/jquery-ui-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                "~/Scripts/jquery.unobtrusive*",
                "~/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 StyleBundle("~/Content/css").Include("~/Content/site.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                        "~/Content/themes/base/jquery.ui.core.css"));
        }
    }
}
  • Редактирайте горното, за да добавите необходимите пакети от скриптове и таблици със стилове, след което добавете следните редове към секцията за използване и Application_Start в Global.asax.cs:
//using section
using System.Web.Optimization;

//Application_Start
BundleConfig.RegisterBundles(BundleTable.Bundles);
  • Заменете вашите CSS и JavaScript и тагове в _Layout.cshtml с извиквания към @Styles.Render("~/Content/css") и @Scripts.Render("~/bundles/jquery"), като замените параметрите с имената на пакетите, които сте добавили към BundleConfig.cs. Уверете се, че не именувате нито един от пакетите по същия начин като папките във вашия проект.

Вече трябва да сте готови – прочетете как да използвате пълния набор от функции тук: http://www.asp.net/mvc/overview/performance/bundling-and-minification

person Ed Andersen    schedule 23.08.2012

Да Следвайте стъпките по-долу, за да обедините и минимизирате JS и CSS:

  • Първо отворете конзолата за управление на пакети и изпълнете командата, изберете вашето уеб приложение като проект.

Инсталационен пакет Microsoft.AspNet.Web.Optimization

  • Отидете на global.asax, щракнете с десния бутон и вижте кода

  • Поставете кода по-долу:

    public static void MinifyJavaScriptAndCSS()
    {
       var scripts1 = new ScriptBundle("~/bundles/customJSBundle");
       scripts1.Include("~/Scripts/script1.js");
       scripts1.Include("~/Scripts/script2.js");
       BundleTable.Bundles.Add(scripts1);
    
        //Bundle Css
        var css1 = new StyleBundle("~/bundles/customCSSBundle");
        css1.Include("~/Styles/style1.css");
        css1.Include("~/Styles/style2.css");
        BundleTable.Bundles.Add(css1);  
     }
    
  • Обадете се на това в Application_Start()

     protected void Application_Start()
    {
        ApplicationHelper.MinifyJavaScript();
     }
    
  • Отидете на _Layout.cshtml в Views/Shared

  • Добавете линията в главата

    @ViewBag.Title - Моето ASP.NET приложение @Styles.Render("~/bundles/customCSSBundle")

  • Добавете това преди затварянето на етикета body

     //your code
      @Scripts.Render("~/bundles/customJSBundle")
     </body>
    
  • В web.config, ако зададете debug=true на компилация, файловете няма да бъдат групирани. Ако го зададете като false, тогава файловете ще бъдат групирани.

person Adithya Kumaranchath    schedule 30.05.2014