我们在之前讲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,就可以关闭浏览器下载的文件完整性检查。

  

  

最新文章

  1. mac搭建测试服务器
  2. I’m Sure It Will Only Take You A Few Days To Code
  3. BNUOJ 51279[组队活动 Large](cdq分治+FFT)
  4. AFNetworking 3.0.4 的使用
  5. 如何迁移Alwayson AG
  6. C#类的继承
  7. div居中问题
  8. Cassandra1.2文档学习解读计划——为自己鼓劲
  9. Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型
  10. 使用MUI的日期控件引起的探索——HTML5 input类型date属性
  11. spoj 839-Optimal Marks
  12. Python函数部分(1)
  13. spring boot常见问题
  14. Charles在Mac、iPhone、Android上抓http/https协议的包
  15. 百度地图API的应用
  16. BCM5396的SPI理解
  17. 插入排序算法 Java实现
  18. 比较不错的Nosql文章
  19. 20155201 2016-2017-2 《Java程序设计》第五周学习总结
  20. InstallShield Build错误:Internal build error 6041

热门文章

  1. HTML学习笔记(四)常用标签
  2. Codeforces712B【= =】
  3. 学习RESTFul架构
  4. P4827 [国家集训队] Crash 的文明世界(第二类斯特林数+树形dp)
  5. [原创]内网渗透专用SSH连接工具sshcmd/sshshell/ssh密码破解以及Kali开启SSH
  6. Linux安装Loadrunner generator
  7. 利用Web服务生成产品编号 执行添加操作
  8. bzoj4300 绝世好题 【dp】By cellur925
  9. linux 系统运行级别(转)
  10. 微信开发(一)URL配置