ASP.Net Core -- Environment TagHelper

1:EnvironmentTaghelper支持根据不同的环境加载不同的内容,更多时候是帮助我们将我们的开发环境和生产环境进行一个剥离

2:比如:我们在生产环境用cdn上的bootstrap文件,在开发环境使用本地bootstrap文件,就可以使用Environment标签进行隔离,可以使用TagHelper的一些标签属性进行设置

如下:

<environment include="Development">
        <link href="~/node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
    </environment>
    <environment exclude="Development">
        <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.0.0-alpha1/css/bootstrap.min.css" rel="stylesheet">
    </environment>

include=“”   指的是在什么什么环境下

exclude=“”   指的是不在什么什么环境下

但是直接这样写容易出问题,假如现在项目发布了,在生产环境环境下使用的cdn上的css文件,万一连接不上怎么办,这个时候可以使用TagHelper标签属性,进行相关判断,如下:

<environment include="Development">
        <link href="~/node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
    </environment>
    <environment exclude="Development">
        <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.0.0-alpha1/css/bootstrap.min.css" 
              asp-fallback-href="~/node_modules/bootstrap/dist/css/bootstrap.css"
              asp-fallback-test-class="sr-only"
              asp-fallback-test-property="position"
              asp-fallback-test-value="absolute"
              rel="stylesheet">
    </environment>

判断从cdn调用的文件是否出问题,如果是,就回滚,继续使用本地文件,当然,判断使用的属性标签不一定,如下判断js文件:

<environment include="Development">
        <script src="~/node_modules/jquery/dist/jquery.js"></script>
        <script src="~/node_modules/jquery-validation/dist/jquery.validate.js"></script>
        <script src="~/node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive"></script>
    </environment>
    <environment exclude="Development">
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"
                asp-fallback-src="~/node_modules/jquery/dist/jquery.js"
                asp-fallback-test="window.jQuery"></script>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js"
                asp-fallback-src="~/node_modules/jquery-validation/dist/jquery.validate.js"
                asp-fallback-test="window.jQuery && window.jQuery.validate"></script>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"
                asp-fallback-src="~/node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive"
                asp-fallback-test="window.jQuery && window.jQuery.validate && window.jQuery.validate.unobtrusive"></script>
    </environment>

  

原文地址:https://www.cnblogs.com/dcy521/p/13554544.html