我之前没有使用过http-server npm模块!
我刚刚开始使用服务工作者通过使用this blog as a source创建示例应用程序
在此,作者使用http-server来演示服务工作者!
在博客中,我复制了代码段以检查是否支持chrome
const check = () => {
if (!('serviceWorker' in navigator)) {
throw new Error('No Service Worker support!')
}
if (!('PushManager' in window)) {
throw new Error('No Push API Support!')
}
console.log('Everything works fine')
}
const main = () => {
check()
}
main()
注意console.log('Everything works fine')
现在,当我继续撰写文章时,我按照指示改变了我的main.js
const check = () => {
if (!('serviceWorker' in navigator)) {
throw new Error('No Service Worker support!')
}
if (!('PushManager' in window)) {
throw new Error('No Push API Support!')
}
console.log(`Browser supports Pushmanager and Service worker`)
}
// Async so we can use await
const main = async () => {
check()
const swRegistration = await registerServiceWorker();
}
//To run service worker we need to first register service worker
//Registering Service Worker
const registerServiceWorker = async () => {
const swRegistration = await navigator.serviceWorker.register('service.js'); //notice the file name
return swRegistration;
}
但是当我进入页面时,它会从控制台中的第一个代码片段中记录下来
Everything works fine
我检查了main.js,看起来服务器仍在服务以前的main.js而不是新的。
如果我手动转到我的文件并在没有服务器的情况下打开它,main.js会显示我的新代码更改。
我试过转动服务器(使用ctrl / cmd + c)并重新启动它但没有帮助。
有人可以帮我解决这个问题吗?
看起来像http-server
告诉浏览器cache pages for an hour by default:
-c
设置缓存控制max-age头的缓存时间(以秒为单位),例如-c10持续10秒(默认为'3600')。要禁用缓存,请使用-c-1。
使用http-server -c-1
重新启动服务器,然后在浏览器中进行硬刷新(在Firefox或Chrome中按Ctrl / Cmd + Shift + R)。