You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web路由跳转丢失index.html致刷新报错的配置问题问询

解决方案

步骤1:调整base href配置

两种修改方式二选一即可:

  • 手动修改web/index.html中的base标签,将原有配置替换为:
    <base href="/mojjo-test/index.html">
  • 执行build命令时主动指定base href参数,无需手动修改文件:
    flutter build web --base-href "/mojjo-test/index.html"

步骤2:验证路由跳转逻辑

默认哈希路由模式下,修改base href后,Flutter会基于完整的index.html路径生成哈希路由,加载完成后自动跳转的地址会变为你预期的http://example.com/mojjo-test/index.html#/,此时刷新页面浏览器会直接请求index.html文件,不会出现访问拒绝报错。

可选:自定义路由初始化(如果上述配置不生效)

如果项目中存在自定义路由配置,可以在main.dart中手动指定初始路由,强制保留index.html后缀:

import 'package:flutter/material.dart';
import 'dart:html' as html;

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  // 手动修正初始路径,保留index.html
  if (!html.window.location.pathname.endsWith('index.html')) {
    html.window.location.replace('${html.window.location.origin}/mojjo-test/index.html${html.window.location.hash}');
    return;
  }
  runApp(const MyApp());
}

内容的提问来源于stack exchange,提问作者ashutosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:09:02