我如何编写(flatterweb)代码以便JavaScript文件在本地机器上运行?

我如何编写(flatterweb)代码以便JavaScript文件在本地机器上运行?,javascript,flutter,dart,Javascript,Flutter,Dart,我构建了一个简单的颤振web应用程序。它在github.io和localhost服务器上运行良好: $ flutter run -d chrome 如果我创建发布版本: $ flutter build web 将应用程序转换为(基本上)JavaScript文件(main.dart.js),为什么我不能通过加载创建的index.html文件来运行应用程序 浏览器中的JavaScript调试器告诉我以下代码: <script> if ('serviceWorker' in n

我构建了一个简单的颤振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>

我不知道这意味着什么,也不知道如何修复它。我知道这并不像在
flatter\u service\u worker.js前面添加
http
那么简单,我相信问题在于您正在通过
文件
协议本地打开index.html文件。根据SO的回答,服务人员需要通过
http
https
协议打开。这就是为什么index.html文件在您的localserver和github.io上工作,但在您通过chrome或其他浏览器打开它时却无法工作的原因。

service worker js文件的路径是什么?@Ameer它与index.html位于同一目录中。尝试放置“/flatter\u service\u worker.js”,看看是否可以修复它。看看这个答案。服务工作者不能在本地打开,他们必须通过http或https打开我相信我打赌你是对的。如果你把这个写下来作为回答,我可以接受它作为答案。
Uncaught (in promise) TypeError: ServiceWorkerContainer.register: Script URL's scheme is not 'http' or 'https'