天天看點

将 blazor webassembly 部署到 iis 10 上

第一步 釋出blazor wasm

在工程上右鍵選擇 釋出,釋出到檔案夾,預設到 bin/debug/release/publish 下,然後點 【釋出】按鈕,釋出成功後,在 publish 檔案夾内能看到 wwwroot 和 web.config。

第二步 将釋出的檔案夾拷貝到伺服器上,編輯綁定

要求伺服器上安裝相應的.net 運作時,我的是.net core 3.1

第三步 解決跨域問題

blazor wasm 需要通過 HttpClient 跟其他 web server 進行 GET POST等調用,需要 web server 允許跨域。

注意:因檔案夾無權限也可能報 cors拒絕通路錯誤!

我在伺服器上的日志中發現了這個問題,為網站的檔案夾(如果有)配置設定 IIS_IUSRS 完全控制權限。

第四步 壓縮檔案,提高加載速度

我的 blazor wasm 完全加載要13M,如果不壓縮首次加載需要90秒。

publish時已經有了 gz 和 br 兩種壓縮檔案,需要在iis上啟動壓縮,并在web.config中設定。

iis上啟動壓縮需要安裝 Microsoft IIS Compression。

web.config 設定壓縮參考官方例子。

gzip壓縮後,下載下傳檔案大小變為了5M,時間38秒。

如果web api 的json較大,建議啟動 動态壓縮。

總結

blazor wasm 首次加載還是慢的可以,好在浏覽器緩存後再請求就秒快了。據說 .net 6 把檔案打包壓縮且優化了系統檔案的尺寸加載速度提高了不少。

繼續閱讀