zoukankan      html  css  js  c++  java
  • asp.net core 2.2 生产环境直接更新View页面并立即生效

     3.x版本:安装nuget包:Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation,然后添加如下代码

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages()
            .AddRazorRuntimeCompilation();
    }

    // 项目配置文件
    <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <RazorCompileOnBuild>false</RazorCompileOnBuild> <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish> </PropertyGroup>

    有的时候我们会直接在生产环境上更新页面文件,比如更改了JS代码,CSS代码或页面的文案,布局等。这种没有改到后台代码的情况一般就是直接发布页面文件了,在asp.net core 2.2以前的版本(没有主动配置页面缓存的情况)更新了是会立即生效的,但是在2.2及以后的版本在生产环境上要想立即生效得需要自己手动配置了,代码如下:

    1 services.AddMvc(options => 2 { 3 options.Filters.Add(new GlobalExceptionFilter()); 4 }).AddJsonOptions(options => 5 { 6 options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; 7 }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2) 8 .AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);

    主要是这句:.AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true); 

    从属性名称可以看出来意思差不多是允许重新编译更改的视图文件(论规范命名的重要性)

    Microsoft Docs :https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-2.2

    这篇文章只是做个记录,如有帮助请留言点赞哦 ^_^

  • 相关阅读:
    括号匹配性检测C语言实现
    预处理命令--宏定义
    *运算和&运算
    retain, copy, assign以及autorelease
    自定义 一个单例
    多米音乐笔试题
    UI-自定义视图、视图控制器
    Foundation框架—集合
    Foundation框架—字符串
    Foundation框架—结构体
  • 原文地址:https://www.cnblogs.com/Ax0ne/p/Allow_Recompiling_Views.html
Copyright © 2011-2022 走看看