ASP.NET Core MVC 2.1 Просмотр компиляции при публикации в Azure - PullRequest
0 голосов
/ 03 октября 2019

Я создал класс, унаследованный от RazorProjectFileSystem, который выполняет минимизацию файлов cshtml до их компиляции. Это настроено в Startup.ConfigureServices.

Отлично работает при локальном запуске, удаляя массу пробелов и комментариев. Однако когда сайт публикуется в Azure, создается ProjectName.Views.dll, что полностью обходит мою логику.

Я все еще хочу использовать предварительно скомпилированные представления (и да, мы также используем сжатие gzip), но мне нужно подключить мою логику где-то еще в цепочке, чтобы это произошло. Однако я не могу найти никакой информации о том, где файлы .cshtml читаются из файловой системы, как часть создания View.dll.

Я подозреваю, что нам может понадобиться запустить минификацию до самого процесса сборки. Любые идеи или рекомендации очень ценятся.

1 Ответ

1 голос
/ 31 октября 2019

Существует множество библиотек для минимизации времени сборки файлов CSHTML, вы можете использовать **gulp-cshtml-minify**. Единственная проблема с этим в том, что вы должны установить node и gulp для использования этого.

Вот подробное описание этого. который вы можете найти в блоге ниже:

https://debugandrelease.blogspot.com/2018/11/automatically-minifying-cshtml-files-in.html

Единственное, что вам нужно сделать, это добавить слово .min при извлечении соперников из папки, как показано ниже:

public override ViewResult View(string viewName, object model)
        {
            if (!IsDevelopment())
            {
                string action = ControllerContext.RouteData.Values["action"].ToString();

                if (string.IsNullOrEmpty(viewName))
                {
                    viewName = $"{action}.min";
                }                    
                else if (viewName == action)
                {
                    viewName += ".min";
                }
            }

            return base.View(viewName, model);
        }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...