http服务器网络提供新的js文件

时间:2019-04-15 23:40:07

标签: javascript httpserver

我以前没有使用过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)并再次重新启动它,但没有帮助。

有人可以帮我解决这个问题吗?

1 个答案:

答案 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 )。