我构建了一个简单的 flutter web 应用程序。它在 github.io 和localhost
server:
$ flutter run -d chrome
如果我创建一个发布版本:
$ flutter build web
将应用程序转换为(基本上)JavaScript 文件(main.dart.js
),为什么我不能通过加载创建的应用程序来运行应用程序index.html
file?
我的浏览器中的 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'
我不确定这意味着什么或如何解决它。我知道这并不只是添加那么简单http
在...前面flutter_service_worker.js
.
我相信问题是您正在通过本地打开 index.html 文件file
协议。根据this所以答案,服务人员需要通过http
or https
协议。这就是为什么 index.html 文件可以在本地服务器和 github.io 上运行,但当你通过 Chrome 或其他浏览器打开它时却无法运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)