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

Flutter Web页面刷新时卡在index.html,ServiceWorker注册失败

Flutter Web刷新后卡在index.html,Service Worker注册失败(MIME类型错误)

问题核心

刷新页面后卡在index.html,调试发现navigator.serviceWorker.register('/flutter_service_worker.js');抛出异常:

Exception while loading service worker: DOMException: Failed to register a ServiceWorker for scope ('http://localhost:9090/wiki/') with script ('http://localhost:9090/wiki/flutter_service_worker.js?v=null'): The script has an unsupported MIME type ('text/html').

本质是请求flutter_service_worker.js时,服务端返回了text/html类型的内容(通常是index.html),而非预期的application/javascript。

解决办法

  • 检查服务端路由配置
    单页应用刷新时,浏览器会直接请求当前路径下的资源,如果服务端没有正确映射静态文件,会把所有路由请求都返回index.html。需要调整服务端配置:确保静态资源(包括flutter_service_worker.js)能被正确访问,只有当请求的路由不存在时,才返回index.html作为fallback。

  • 验证脚本的实际访问结果
    在浏览器地址栏直接输入http://localhost:9090/wiki/flutter_service_worker.js:

    • 如果返回的是index.html内容,说明服务端路由配置错误,需要修复静态文件的访问路径映射。
    • 如果返回的是正确的JS代码,检查响应头的Content-Type是否为application/javascript,若不是,在服务端添加对应的MIME类型映射。
  • 调整Service Worker注册路径
    若应用部署在/wiki/子路径下,可改用相对路径注册,避免路径解析错误:

    navigator.serviceWorker.register('./flutter_service_worker.js');
    

    也可以直接指定完整的正确文件路径。

  • 清理浏览器缓存与Service Worker
    打开浏览器开发者工具(F12),进入Application标签页:

    • 在Service Workers面板注销已注册的服务 worker。
    • 在Storage面板清除缓存数据。
      重启浏览器后重新加载页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:55:58