ASP.NET Core MVC 2.1发布到Azure时的视图编译

问题描述 投票:0回答:1

我创建了一个从RazorProjectFileSystem继承的类,该类在编译cshtml文件之前对其进行缩小。在Startup.ConfigureServices中配置。

在本地运行时效果很好,去除了大量空白和注释。但是,当网站发布到Azure时,会创建一个ProjectName.Views.dll,这完全绕开了我的逻辑。

我仍然想使用预编译的视图(是的,我们也使用gzip压缩),但是需要将我的逻辑插入链中的其他位置才能实现。但是,在创建View.dll的过程中,我找不到从文件系统中读取.cshtml文件的位置的任何信息。

我怀疑我们可能需要在实际的构建过程本身之前运行压缩程序。非常感谢任何想法或建议。

asp.net-mvc azure minify asp.net-core-2.1
1个回答
0
投票

[有许多库可用于构建CSHTML文件的时间最小化,您可以使用**gulp-cshtml-minify**。唯一的问题是您必须安装节点和gulp才能使用它。

这是详细说明。您可以在下面的博客中找到它:

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

只需要做的就是在从文件夹中拉出vie时附加.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);
        }

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.