咱們在以前講Program.cs文件作了什麼的時候,提到啓動CreaeDefaultBuilder會獲取環境變量來作一些判斷之類的操做。那麼咱們的Taghelper也能夠使用「ASPNETCORE_ENVIRONMENT"變量來設置在什麼環境下加載什麼庫文件。能夠經過environment標籤來使用。css
<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屬性值中列出的環境名稱不匹配時,將呈現標籤中的內容。bootstrap
咱們在實際開發過程當中,可能開發環境用的是本地的庫,生產環境用的是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訪問失敗的狀況下,回退到咱們指定的另外一個源或者本地庫。具體作法以下ui
<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,就能夠關閉瀏覽器下載的文件完整性檢查。spa