Подтвердить что ты не робот

Добавление новой структуры веб-оптимизации ASP.NET в проекты MVC4 после их ручного обновления

После ручного обновления проекта ASP.NET MVC до MVC4 с использованием этих инструкций, как вы затем настраиваете новые функции компоновки и минимизации активов CSS и JavaScript ASP.NET Web Optimization Framework в MVC4? Шаблоны по умолчанию имеют все настройки, но как вы это делаете вручную?

4b9b3361

Ответ 1

  • Щелкните правой кнопкой мыши "Ссылки", затем "Управление пакетами NuGet" и добавьте "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"));
        }
    }
}
  • Отредактируйте приведенное выше, чтобы добавить необходимые вам пакеты script и таблиц стилей, а затем добавьте следующие строки в раздел использования и 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

Ответ 2

Да Выполните следующие шаги для объединения и минимизации 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( "~/связки/customCSSBundle" )  

  • Добавьте это перед закрытием тега body

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