FlutterKaigi / conference-app-2023

The Official Conference Application for FlutterKaigi 2023
https://flutterkaigi.jp/conference-app-2023/
Apache License 2.0
132 stars 27 forks source link

root以外のページにて、webアプリリロード時にSPAが読み込まれない #112

Closed koji-1009 closed 1 year ago

itome commented 1 year ago

カンファレンスアプリの開発と公開ありがとうございます!まだざっとしか読めていませんがコードのクオリティが高くてとても参考になりました!

Flutter Webのエントリーポイントは単一の index.html ファイルなので、ルート以外のURLにアクセスされたときには対応するhtmlファイルがないために404になってしまっているようです。

  1. ホスティングサービスの設定でどのパスにアクセスされても index.html ファイルにアクセスするようにルールを設定する
  2. ハッシュフラグメント (https://flutterkaigi.jp/conference-app-2023/#/sessions のようにルートに # を入れる) を使う

のどちらかを行うことで解決することができます。 後者の方が手軽ですが、urlに余計な文字が入ることを避ける意味でも個人的には前者がいいかなと思います。 運営の方でどちらの方針にするか決めていただければPRなどの作業は僕もお手伝いできます。

koji-1009 commented 1 year ago

@itome コメントありがとうございます! なるほど、そういう原因なんですね。。 GitHub Pagesを利用しているので、設定を見直してみます!

koji-1009 commented 1 year ago

GitHub Pagesだと404ページをカスタムして、リダイレクトを行わせる方法がある。 https://github.com/rafgraph/spa-github-pages

:memo: こちらの対応にするか、 # 付きのURLにするかを決める。 (SIWAなどは利用されないため、URLに # をつけない理由が強くあるわけではない)

koji-1009 commented 1 year ago

@itome さん 運営内で確認をしました!

こちら1の方向で対応したいです。 理由としましては、本アプリとしてはどちらもで許容できると思われます。一方でFlutter Webが実際に採用されるとすると、#がないパターンで実装を行う必要が生じるケースが想定されます。このため、本アプリとしては#がないケースの機能を実現してみたい、というものです。

GitHub Pagesの仕様が特殊なため、上記404ページのカスタマイズが必要になりそうなのですが、こちらIssueをアサインさせていただけますでしょうか。devの設定であればローカルでの起動、PR上でfirebase hostingへの検証環境デプロイがあるため、作業は可能なのではと思っております……!

itome commented 1 year ago

@koji-1009 確認ありがとうございます。では僕の方で作業しちゃいますね!

itome commented 1 year ago

@koji-1009 リポジトリにpushする権限がないようです。コミットの権限をオープンしてもらってもよろしいでしょうか?

koji-1009 commented 1 year ago

@itome 一度リポジトリをforkしていただいても良いでしょうか? forkしたリポジトリから、FlutterKaigiのリポジトリに対してPRが作成できるかなと思います……!

itome commented 1 year ago

@koji-1009 ありがとうございます!作成できました。