今日はローカルでNuxtのWebプロジェクトを実行したところ、起動などはすべて正常でしたが、ページを開くと`Upgrade Required`と表示され、コンソールには`426`がずらりと並んでいました。最初に考えたのはポート番号や`nuxt-auth`の設定ミスで、`1999`、`3666`、`9999`、`3003`とポート番号を変更してみましたが、効果はありませんでした。
他のプロジェクトと比べて`auth`とポート番号を調整しましたが、それでも解決しませんでした。最終的にPowerShellでテストしました:
- `http://127.0.0.1:1999/ → 200`
- `http://localhost:1999/ → 426`
原因はビジネスコードでもポート番号でもありませんでした。
原因:Windowsでは`localhost`は優先的にIPv6の`::1`を経由し、`127.0.0.1`ではありません。これはIPv6が有効になった後の古い挙動であり、Win11の新しい問題ではありませんが、なぜ以前はこの問題が発生しなかったのかは不明です!?
`Nuxt/Vite`の開発サービスにはHMR WebSocketが含まれており、`::1`から入ってくる通常のHTTPリクエストが「プロトコルアップグレード」要求とみなされ、`426`が返されることがあります。`127.0.0.1`を経由するIPv4では正常に動作します。
## 解決策
開発時には`localhost`ではなく、**`http://127.0.0.1:1999`**を使用してください。
> PS:この新しいプロジェクトはAIに作成・記述してもらったもので、どこかの詳細設定が間違っている可能性もありますが、私には理解できないため、一時的に`127.0.0.1`を使用します~