【发布时间】:2020-08-28 20:02:58
【问题描述】:
我构建了一个简单的 Flutter Web 应用。它在 github.io 和 localhost 服务器上运行良好:
$ flutter run -d chrome
如果我创建发布版本:
$ flutter build web
将应用程序(基本上)转换为 JavaScript 文件 (main.dart.js),为什么我不能通过加载创建的 index.html 文件来运行应用程序?
我浏览器中的 JavaScript 调试器告诉我这段代码:
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('flutter_service_worker.js');
});
}
</script>
产生错误:
Uncaught (in promise) TypeError: ServiceWorkerContainer.register: Script URL's scheme is not 'http' or 'https'
我不确定这意味着什么或如何解决它。我知道这不是在flutter_service_worker.js前面加上http那么简单。
【问题讨论】:
-
service worker js文件的路径是什么?
-
@Ameer 和 index.html 在同一目录下。
-
尝试放置“./flutter_service_worker.js”,看看是否能解决问题
-
看看这个答案stackoverflow.com/questions/39136625/…。 Service Worker 无法在本地打开,我相信它们必须通过 http 或 https 打开
-
我打赌你是对的。如果你把它写成回复,我可以接受它作为答案。
标签: javascript flutter dart