我以前没有使用过http-server npm模块!
我只是通过使用this blog as a source
创建示例应用程序来开始使用Service Worker。在本文中,作者使用了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)并再次重新启动它,但没有帮助。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
看起来像http-server
告诉浏览器去cache pages for an hour by default:
-c
设置缓存控制最大使用时间标头的缓存时间(以秒为单位),例如-c10 10秒钟(默认为“ 3600”)。要禁用缓存,请使用-c-1。
使用http-server -c-1
重新启动服务器,然后在浏览器中进行硬刷新(在Firefox或Chrome中为 Ctrl / Cmd + Shift + R )。