【问题标题】:ASP.NET Core MVC 2.1 View Compilation on Publish to AzureASP.NET Core MVC 2.1 查看发布到 Azure 的编译
【发布时间】:2019-10-31 15:08:21
【问题描述】:

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

在本地运行时工作得很好,去除了大量的空白和 cmets。但是,当站点发布到 Azure 时,会创建一个 ProjectName.Views.dll,这完全绕过了我的逻辑。

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

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

【问题讨论】:

    标签: asp.net-mvc azure minify asp.net-core-2.1


    【解决方案1】:

    有许多库可用于压缩 CSHTML 文件的构建时间,您可以使用 **gulp-cshtml-minify** 。唯一的问题是您必须安装 node 和 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);
            }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2020-03-12
      • 2019-01-18
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多