Environment Tag Helper trong ASP.NET Core

Environment Tag Helper hỗ trợ tạo ra các nội dung phụ thuộc vào biến quy định môi trường trong ASP.NET Core. Bài này chúng ta sẽ tìm hiểu về nó nhé.

Environment Tag Helper

Environment Tag Helper áp dụng sử dụng thẻ <environment>. Nó xác định giá trị hiện tại của biến môi trường ASPNETCORE_ENVIRONMENT để render ra nội dung dựa trên giá trị của biến. Giá trị của ASPNETCORE_ENVIRONMENT được truy cập bởi IHostingEnvironment.EnvironmentName. Biến môi trường này đọc tại thời điểm ứng dụng khởi động và giá trị được đọc vào IHostingEnvironment.EnvironmentName. Theo quy ước thì có 3 giá trị tương ứng với 3 môi trường được hỗ trợ: Development, Staging Production. Tuy nhiên bạn có thể đặt bất cứ tên môi trường nào tùy thích.

Thuộc tính Environment Tag Helper

Environment Tag Helper hỗ trợ 3 thuộc tính.

include

Dấu hỏi được dùng để ngăn cách các giá trị là tên môi trường mà nội dung bên trong cặp thẻ sẽ tạo ra ở các môi trường đó.

<environment include="Development">
    <h1>This only renders in the Development Environment</h1>
</environment>

<environment include="Staging,Production">
    <h1>This only renders in the Staging and Production Environments!</h1>
</environment>

exclude

Một danh sách các tên môi trường cũng được chia tách trong giá trị của thuộc tính exclude. Thuộc tính này quy định nội dung được hiển thị ở tất cả các môi trường trừ các môi trường trong danh sách này. Exclude cho ASP.NET Core biết rằng sẽ không render ra nội dung nếu tên môi trường hiện tại đúng với môi trường đã chỉ ra:

<environment exclude="Development">
    <h1>This content is not rendered in the Development Environments!</h1>
</environment>

Cả include và exclude được áp dụng trùng một tên môi trường thì exclude luôn được ưu tiên.

names

Một dấu phẩy cũng được dùng để chia tách tên môi trường mà nội dung được render. Nếu tên môi trường hiện tại cung nằm trong danh sách exclude thì nội dung vẫn không được render. Vì exclude được ưu tiên cao nhất.

<environment names="Development">
    <h1>This only renders in the Development Environment</h1>
</environment>

<environment names="Development,Production">
    <h1>This renders in Development and Production Environments</h1>
</environment>

Chỉ ra biến môi trường

Bạn có thể chỉ ra biến môi trường từ Properties của Project hoặc qua file lauchSettings.json.

Project Properties

Mở Project Properties ra và chọn tab Debug. Trong phần tên biến môi trường chọn giá trị biến ASPNETCORE_ENVIRONMENT và thay đổi giá trị. Nếu tên biến là ASPNETCORE_ENVIRONMENT không tồn tại hãy click vào nút thêm mới.

 

lauchSettings.json

Cách khác là thay đổi biến môi trường sử dụng lauchSettings.json như dưới đây:

Ví dụ sử dụng Environment Tag Helper

Hầu hết các trường hợp sử dụng Environment Tag Helper là sử dụng để nhúng các file CSS hoặc JavaScript cho các môi trường khác nhau như Development hay Production. Ví dụ bạn cần load version full của CSS trong môi trường Development để debug tuy nhiên với Production bạn chỉ cần nhúng file đã bundle tức là file đã nén để tăng tốc độ và giảm băng thông truyền dữ liệu.

Ví dụ dưới đây cho phép nhúng file đã nén vào của style.css trên tất cả các môi trường trừ môi trường Development.

<environment include="Development"> 
    <link rel="stylesheet" href="~/css/style.css" />
</environment>
<environment exclude="Development">
    <link rel="stylesheet" href="~/css/style.min.css" />
</environment>

Exclude được ưu tiên

Nếu bạn sử dụng các thuộc tính include và exclude trong cùng 1 tag helper thì exclude luôn được ưu tiên. Ví dụ đoạn code dưới đây, môi trường Development là một giá trị quy định trong cả exclude và include. Trong trường hợp này, nội dung sẽ không được render ra cho môi trường Development do danh sách exclude được ghi đè danh sách inlude hoặc danh sách names.

<environment include="Development, Staging" exclude="Development">
    <h1>This will not show in Development or Production, but it will show in Staging.</h1>
</environment>

 


Trích nguồn từ: (https://www.tektutorialshub.com/)

Lên trên