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

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

posted @ 2019-07-06 09:30  Ax0ne  阅读(1282)  评论(2编辑  收藏  举报