設定 Web 應用的 URL 策略

Flutter Web 應用支援兩種基於 URL 的路由的設定方式:

Hash(預設)
路徑使用 # + 錨點識別符號 讀寫,例如:flutterexample.dev/#/path/to/screen

Path
路徑使用非 # 讀寫,例如:flutterexample.dev/path/to/screen

設定 URL 策略

讓 Flutter 使用 path 策略,請使用 flutter_web_plugins 庫中提供的 setUrlStrategy 方法。

import 'package:flutter_web_plugins/url_strategy.dart';

void main() {
  usePathUrlStrategy();
  runApp(ExampleApp());
}

設定 web 伺服器

PathUrlStrategy 使用的是 History API, Web 伺服器需要額外進行設定才能支援相關策略。

要讓 Web 伺服器支援 PathUrlStrategy,你需要查閱 Web 伺服器文件,重寫對 index.html 的請求。更多細節請查閱 Web 伺服器文件,瞭解如何設定單頁應用程式。

如果你使用 Firebase Hosting 託管,在初始化專案時選擇 “設定單頁應用” 選項。更多訊息請檢視 Firebase 中的 設定重寫

當你透過 flutter run -d chrome 建立並執行本地開發伺服器時,它的預設設定會處理好所有的路徑,並回退到應用程式的 index.html 檔案。

將 Flutter 應用部署在子目錄下

更新 web/index.html 中的 <base href="/"> 標籤為你的應用部署路徑。例如:如果你期望將 Flutter 應用部署在 myapp.dev/flutter_app,則更改此標籤為 <base href="/flutter_app/">