Open13
Blazor WebAssembly
ZIP圧縮
using System.IO.Compression;
public byte[] ZippedImages()
{
MemoryStream stream = new();
using (ZipArchive archive = new(stream, ZipArchiveMode.Create))
{
foreach (var image in images)
{
ZipArchiveEntry entry = archive.CreateEntry(image.Key);
using (BinaryWriter writer = new(entry.Open()))
{
writer.Write(image.Value);
}
}
}
return stream.ToArray();
}
ML
S3+CloudFrontにデプロイ
S3
バケットを作成
パブリックアクセスをすべて ブロック
をオフにしてバケットを作成します。
バケットポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BucketName>/*"
}
]
}
静的ウェブサイトホスティング
プロパティ > 静的ウェブサイトホスティング で 静的ウェブサイトホスティングを有効にします。
インデックスドキュメント
とエラードキュメント
にindex.html
を指定します。
CloudFront
カスタムエラーレスポンス
カスタムエラーレスポンスを作成して403だったときに/
を指定します。
integrity check 関連のエラーの解決
This browser does not support WebAssembly. のエラーハンドリング
index.html
window.onerror = (message, file, lineNo, colNo, error) => {
console.warn(message);
}
unhandledrejection
は利用していないが、発生するエラーによっては利用する必要があるかもしれない。
Javascript
ローカライズ
.NET 7
NuGetでMicrosoft.Extensions.Localization
をインストールする。
マルチコア対応に向けた情報収集
ダウンロード
SIMD
@System.Numerics.Vector.IsHardwareAccelerated
で確認
PublishSPAforGitHubPages.Build の利用
dotnet add package PublishSPAforGitHubPages.Build
GHPagesBase
を指定
dotnet publish -c Release -p GHPages=true -p GHPagesBase=/
.NET8でMark2をビルド
dotnet new blazorwasm -o Mark2 --pwa
MudBlazor
パッケージの更新確認
dotnet list package --outdated