我如何编写(flatterweb)代码以便JavaScript文件在本地机器上运行?
我构建了一个简单的颤振web应用程序。它在github.io和我如何编写(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
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'