Asp.Net Core 入门—— 环境变量 TagHelper
Posted jesen1315
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.Net Core 入门—— 环境变量 TagHelper相关的知识,希望对你有一定的参考价值。
我们在之前讲Program.cs文件做了什么的时候,提到启动CreaeDefaultBuilder会获取环境变量来做一些判断之类的操作。那么我们的Taghelper也可以使用“ASPNETCORE_ENVIRONMENT"变量来设置在什么环境下加载什么库文件。可以通过environment标签来使用。
<environment include="Development"> <link href="~/lib/twitter-bootstrap/css/bootstrap.css" rel="stylesheet" /> </environment> <environment exclude="Staging,Production"> <link href="~/lib/twitter-bootstrap/css/bootstrap.css" rel="stylesheet" /> </environment>
include属性接受将单个环境环境名称以逗号分隔的形式生成列表。在<environment>tag helper上,还有exclude属性,当托管环境与exclude属性值中列出的环境名称不匹配时,将呈现标签中的内容。
我们在实际开发过程中,可能开发环境用的是本地的库,生产环境用的是cdn,所以我们可以这么做
<environment include="Development"> <link href="~/lib/twitter-bootstrap/css/bootstrap.css" rel="stylesheet" /> </environment> <environment exclude="Development"> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </environment>
值得注意的是,<link>元素上的”integrity“属性,全称是SubResource Integrity(SRI),用于检查”子资源完整性“,它是一种安全功能,允许浏览器检查被检索的文件是否被恶意更改。
最后总结一下使用环境变量 tag helper,它可以使得我们生产环境在引用的CDN访问失败的情况下,回退到我们指定的另一个源或者本地库。具体做法如下
<environment exclude="Development"> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous" asp-fallback-href="~/lib/twitter-bootstrap/css/bootstrap.css" asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" asp-suppress-fallback-integrity="true" > </environment>
使用asp-fallback-href属性指定回退源。asp-fallback-test-class 判断失败时用到的class,asp-fallback-test-property 判断失败时用到的属性,asp-fallback-test-value 判断失败时用到的值。通过将”asp-suppress-fallback-integrity“属性设置为false,就可以关闭浏览器下载的文件完整性检查。
以上是关于Asp.Net Core 入门—— 环境变量 TagHelper的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用
[MVC&Core]ASP.NET Core MVC 视图传值入门