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
这篇文章只是做个记录,如有帮助请留言点赞哦 ^_^