2022年10月27日
川俣晶の縁側ソフトウェア技術雑記 total 2008 count

自作HTTPDでBlazor WebAssemblyのアプリを起動できない

Written By: 川俣 晶連絡先

問題 §

シンプルなHTTPサーバを自作した。

これでBlazor WebAssemblyのアプリを起動しようとしたらできない。

原因 §

Blazor WebAssemblyアプリは、以下の手順で起動する。

  1. index.htmlを読み込みで、コード一式が稼動を開始する
  2. このとき、index.htmlは見つからないというエラーになる (Blazor管理下のページではないため)
  3. /にアクセスしてデフォルトページ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に置いても使えなかった。