ASP.NET Core Web資源打包與壓縮技術(shù)介紹
概述
在ASP.Net中可以使用打包與壓縮這兩種技術(shù)來提高Web應用程序頁面加載的性能。通過減少從服務器請求的次數(shù)和減少資源文件的體積來提高加載性能。
- 打包是一地將多個文件(CSS,JavaScript等資源文件)合并或打包到單個文件。文件合并可減少了 Web 資源文件從服務器的所需請求數(shù),這樣也可提高頁面載入的性能。
- 壓縮是將各種不同的代碼進行優(yōu)化,以減少請求資源文件的體積。壓縮的常見方法刪除不必要的空格和注釋,并將變量名縮減為一個字符。
例如下面JavaScript函數(shù):
AddAltToImg = function (imageTagAndImageID, imageContext) {
///<signature>
///<summary> Adds an alt tab to the image
// </summary>
//<param name="imgElement" type="String">The image selector.</param>
//<param name="ContextForImage" type="String">The image context.</param>
///</signature>
var imageElement = $(imageTagAndImageID, imageContext);
imageElement.attr('alt', imageElement.attr('id').replace(/ID/, ''));
}壓縮后,函數(shù)簡化為如下:
AddAltToImg=function(t,a){var r=$(t,a);r.attr("alt",r.attr("id").replace(/ID/,""))};除了刪除注釋和不必要的空格之外,參數(shù)和變量名稱被重命名(縮寫)如下:
| 原始名稱 | 重命名后 |
|---|---|
| imageTagAndImageID | t |
| imageContext | a |
| imageElement | r |
此示例來自于github:https://github.com/aspnet/Docs/blob/master/aspnetcore/client-side/bundling-and-minification.md
bundleconfig.json文件
MVC項目模板提供了一個bundleconfig.json配置文件,它定義了打包的配置選項。默認情況下,實現(xiàn)了自定義腳本文件(wwwroot/js/site.js) 和樣式表 (wwwroot/css/site.css) 文件的配置。
[
{
"outputFileName": "wwwroot/css/site.min.css",
"inputFiles": [
"wwwroot/css/site.css"
]
},
{
"outputFileName": "wwwroot/js/site.min.js",
"inputFiles": [
"wwwroot/js/site.js"
],
"minify": {
"enabled": true,
"renameLocals": true
},
"sourceMap": false
}
]配置選項詳細說明:
- outputFileName - 要輸出打包包文件的路徑。 與
bundleconfig.json文件的相對路徑。 必填 - inputFiles - 要打包的的文件路徑數(shù)組。 與是配置文件的相對路徑。 選填,如果是空數(shù)組會輸出一個空文件。 支持通配符模式。
- minify - 輸入出類型的壓縮選項。 選填,默認值 -
minify: { enabled: true }- 輸入出文件類型可用配置選項。
- includeInProject - 將生成的文件添加到項目。 選填, 默認值 - false
- sourceMaps - 生成合并文件的源文件映射。 選填,默認值 - false
在項目中使用打包和壓縮
在VS 2015/2017需要安裝BundlerMinifierVsix ,安裝完成后需要重啟VS。
在bundleconfig.json文件右鍵單擊,然后選擇任務運行程序資源管理器。

在Update all fiels選項右鍵單擊,然后選擇Run。

在項目中會分別生成壓縮后的資源文件。

在視圖中使用打包壓縮后的資源文件
在上一篇博客《ASP.NET Core配置環(huán)境變量和啟動設置》我們已經(jīng)討論過環(huán)境變量,在視圖中通過 Environment 標簽,分別定義開發(fā)、預演和生產(chǎn)環(huán)境加載對應的資源文件。
<environment names="Development">
<link rel="stylesheet" href="~/css/site.css" rel="external nofollow" />
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="~/css/site.min.css" rel="external nofollow" asp-append-version="true" />
<script src="~/js/site.min.js" asp-append-version="true"></script>
</environment>當在開發(fā)模式下運行應用程序,我們使用未壓縮Css和腳本文件;在生產(chǎn)環(huán)境中,我們壓縮后的資源文件,這樣可以提高應用程序的性能。
總結(jié)
在ASP.Net中可以使用打包與壓縮這兩種技術(shù)來提高Web應用程序頁面加載的性能。
到此這篇關(guān)于ASP.NET Core Web資源打包與壓縮技術(shù)介紹的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解ASP.NET Core3.0 配置的Options模式
這篇文章主要介紹了詳解ASP.NET Core3.0 配置的Options模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
.NETCore基于RabbitMQ實現(xiàn)延時隊列的兩方法
這篇文章主要介紹了.NETCore基于RabbitMQ實現(xiàn)延時隊列的兩方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
TreeNodeCheckChanged事件觸發(fā)方法代碼實例
這篇文章主要介紹了TreeNodeCheckChanged事件觸發(fā)方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-12-12
在ASP.NET Core 中發(fā)送郵件的實現(xiàn)方法(必看篇)
下面小編就為大家?guī)硪黄贏SP.NET Core 中發(fā)送郵件的實現(xiàn)方法(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
asp.net html控件的File控件實現(xiàn)多文件上傳實例分享
asp.net中html控件的File控件實現(xiàn)多文件上傳簡單實例,開發(fā)工具vs2010使用c#語言,感興趣的朋友可以了解下,必定是多文件上傳值得學習,或許本文所提供的知識點對你有所幫助2013-02-02

