http-сервер, обслуживающий свежий файл js - PullRequest
0 голосов
/ 16 апреля 2019

Я раньше не использовал модуль http-сервера npm!

Я только начал работать с сервисным работником, создав пример приложения, используя этот блог в качестве источника

При этом автор использовал http-сервер для демонстрации работника сервиса!

Из блога я скопировал фрагмент кода, чтобы проверить, поддерживается ли 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 Ответ

1 голос
/ 16 апреля 2019

Похоже, http-server говорит браузеру кэшировать страницы на час по умолчанию :

-c Установить время кэширования (в секундах) для заголовка max-age контроля кэша, например -c10 в течение 10 секунд (по умолчанию «3600»). Чтобы отключить кеширование, используйте -c-1.

Перезагрузите сервер с помощью http-server -c-1, затем выполните полное обновление в браузере ( Ctrl / Cmd + Shift + R в Firefox или Chrome).

...