問題 §
シンプルなHTTPサーバを自作した。
これでBlazor WebAssemblyのアプリを起動しようとしたらできない。
原因 §
Blazor WebAssemblyアプリは、以下の手順で起動する。
- index.htmlを読み込みで、コード一式が稼動を開始する
- このとき、index.htmlは見つからないというエラーになる (Blazor管理下のページではないため)
- /にアクセスしてデフォルトページIndex表示する
初回アクセス直後にデフォルトページを見るには、URLに/を指定しつつindex.htmlを読み込む必要がある。/が指定された際のデフォルトページファイル名がindex.htmlになるという実装になっていない限り、一発でページを起動することができない。割と多くの世の中のhttpサーバはこの条件を満たすが、最低限の機能しか持っていないHTTPサーバはこの機能を持っていない可能性が高い。デフォルトページがindex.htmlではなくdefault.htmの古いIISでも引っかかる可能性がある。
解決 §
/だけが指定されたときはindex.htmlを補うようにHTTPサーバを実装する
その後、/を指定してページを開く
たとえば、http://localhost/のようなURLでアクセスする。
その他 §
Blazorアプリはルートに置かないと上手く動作しない感じである。
Visual Studioからフォルダにデプロイするといろいろファイルを作るがwwwroot以下のファイルだけ使う。それ以外のファイルは無視して良い。……というか、web.configは使い道が分からなかった。IISに置いても使えなかった。