优化重点项
将以下资源本地化,打包到项目中
- canvaskit.js和canvaskit.wasm
- KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
- css2?family=Noto_Sans+SC
ps:最初canvaskit资源上传到阿里云,采用国内镜像资源加载。这次为了保险起见,也放入到本地。
好处:只要服务器正常能访问,这些资源文件就能够正常加载成功,最大程度上规避页面加载异常的风险!
最终项目中添加一些配置文件,如下图:
index.html
文件中更改canvaskit加载方式为本地
下载相关
下载canvaskit.wasm和canvaskit.js
https://unpkg.com/canvaskit-wasm@0.35.0/bin/canvaskit.js
https://unpkg.com/canvaskit-wasm@0.35.0/bin/canvaskit.wasm
下载地址方式获取:F12 ->Network
下载KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
下载字体CSS
https://fonts.googleapis.com/css2?family=Noto+Sans+SC
下载的样式保存在本地,命名为 localfonts.css
更改CSS中引用的woff2字体文件,更改为本地路径
字体文件批量下载
1 | curl -O https://fonts.gstatic.com/s/notosanssc/v26/k3kXo84MPvpLmixcA63oeALhLIiP-Q-87KaAaH7rzeAODp22mF0qmF4CSjmPC6A0Rg5g1igg1w.[1-120].woff2 |
下载的文件装入到woff2文件夹放在 web/canvaskit 路径下
配置相关
执行flutter build web打包命令后生成build/web文件
由于打包后的文件资源引用还是url链接形式,故需要修改build/web目录下的main.dart.js
替换远端路径为本地路径
将https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
替换成canvaskit/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
将https://fonts.googleapis.com/css2?family="+A.bF(o," ","+")
替换成canvaskit/localfonts.css
脚本自动打包&替换资源引用路径
flutter_build.sh脚本自动打包以及打完包后修改build/web目录下的main.dart.js中资源引用路径替换成本地路径
1 | !/bin/zsh |