Отключение пакетирования и минификации (WEBFORMS)

Я создал новый сайт asp.net для тестирования этой функции. Теперь я хочу иметь возможность динамически контролировать возможность переключения / минимизации во время выполнения. Большая часть кода была сгенерирована самостоятельно, как показано ниже, за исключением строки для отключения оптимизации.

 public static void RegisterBundles(BundleCollection bundles)
        {

            // I ADDED THIS LINE ONLY TO TURN OFF OPTIMIZATION.
            System.Web.Optimization.BundleTable.EnableOptimizations = false;

            bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
                            "~/Scripts/WebForms/WebForms.js",
                            "~/Scripts/WebForms/WebUIValidation.js",
                            "~/Scripts/WebForms/MenuStandards.js",
                            "~/Scripts/WebForms/Focus.js",
                            "~/Scripts/WebForms/GridView.js",
                            "~/Scripts/WebForms/DetailsView.js",
                            "~/Scripts/WebForms/TreeView.js",
                            "~/Scripts/WebForms/WebParts.js"));

            // Order is very important for these files to work, they have explicit dependencies
            bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
                    "~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
                    "~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js",
                    "~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
                    "~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"));

            // 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-*"));

            ScriptManager.ScriptResourceMapping.AddDefinition(
                "respond",
                new ScriptResourceDefinition
                {
                    Path = "~/Scripts/respond.min.js",
                    DebugPath = "~/Scripts/respond.js",
                });
        }

Мои вопросы следующие:

1) У меня сложилось впечатление, что enableOptimization должен был отключить оптимизацию, и я буду видеть в браузере не связанные скрипты без необходимости изменять мою разметку. Я думал, что scriptManager автоматически обрабатывает это и выталкивает отдельные файлы JS, когда видит вышеуказанный флаг.

2) Наличие отладки в true в web.config также приведет к тому, что enableoptimization станет false.

Являются ли оба эти предположения ложными?

РЕДАКТИРОВАТЬ

1) Это и это похожие вопросы, но нет ответов!

РЕДАКТИРОВАТЬ 2

public class OptimizationModule : IHttpModule
{

    private const string PARAM_NAME = "minify";


    public void Dispose()
    {
        //throw new NotImplementedException();
    }

    public void Init(HttpApplication context)
    {
        context.BeginRequest +=(new EventHandler(this.context_BeginRequest));
    }



    private void context_BeginRequest(Object source, EventArgs e)
    {
        // Create HttpApplication and HttpContext objects to access
        // request and response properties.

        HttpApplication application = (HttpApplication)source;         

        if (application != null && application.Request.QueryString[PARAM_NAME] != null)
        {
            bool minify;
            bool.TryParse(application.Request.QueryString[PARAM_NAME], out minify);

            if (!minify)
            {
                BundleTable.Bundles.Clear();
                BundleConfigs.GenerateBundles(BundleTable.Bundles, false);                    
            }
            else {
                BundleTable.Bundles.Clear();
                BundleConfigs.GenerateBundles(BundleTable.Bundles, true);
            }

        }
    }


}

Я попытался добавить httphandler, чтобы позволить роскошь для изменения оптимизации во время работы приложения. Поэтому я подумал, что просто передам что-то вроде этого: localhost/page.aspx? Minify=false на стороне клиента, чтобы посмотреть, как выглядит незавершенная версия, если мне нужно что-то отладить. Но это, похоже, ничего не меняет. Значит ли это, что любые настройки, которые у меня есть в начале, будут сохраняться в течение всего сеанса или их можно будет изменить.

0 ответов

Другие вопросы по тегам