我正在根据“ https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers”测试serviceWorker
我的装有Ubuntu 18.04,apache2 v2.4.29,firefox 69.0.1的PC
[我看到serviceWorker仅在HTTPS域上起作用,而且在端口80和本地主机上也可以进行测试。
我在我的一个测试域outilsrouteur.test上对其进行了测试,其中/etc/apache2/sites-available/outilsrouteur.test.conf是:
<VirtualHost *:80>
ServerName outilsrouteur.test
ServerAlias www.outilsrouteur.test
DocumentRoot ***/siteoutilsrouteur // *** = my real directory
<Directory ***/siteoutilsrouteur> // *** = my real directory
DirectoryIndex index.html index.php
Options SymLinksIfOwnerMatch
AllowOverride all
Require local
</Directory>
ErrorLog ***/siteoutilsrouteur/error.log.txt
CustomLog /access.log combined
</VirtualHost>
和etc / apache2 / port.conf是:
Listen 80
我几乎没有将app.js修改为:
console.log("===================\napp.js :\n\n"); //****
if ('serviceWorker' in navigator) {
console.log("serviceWorker existe");
navigator.serviceWorker.register('./sw-test/sw.js', {scope: './sw-test/'})
.then((reg) => {
// registration worked
console.log('Registration succeeded. Scope is ' + reg.scope);
}).catch((error) => {
// registration failed
console.log('Registration failed with ' + error);
});
} else { //****
console.log("serviceWorker n'existe pas / doesn't exist : '"+location.port+"'"); //****
}
我以为我的LAMP可以监听80端口,但是,当我调用测试页面时(第一步):
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>SW map</title>
<body>
<h1>Pour voir</h1>
<section></section>
<script src="app.js"></script>
</body>
</html>
控制台显示此消息:
===================
app.js :
app.js:1:9
serviceWorker n'existe pas / doesn't exist : ''
所以,我运行了测试,但是位置端口不是80,并且不存在serviceWorker ...
您能告诉我我的秘密吗?
确定,在mdn页面的底部向下:
进行测试时,您可以通过检查的“通过HTTP启用服务工作者(打开工具箱时)”选项Firefox开发者工具设置。
确实起作用。