API широковещательного канала не запускается - PullRequest
0 голосов
/ 13 ноября 2018

Я новичок в workbox и пытаюсь интегрировать его с моим приложением реакции. Кэширование работает нормально, но кажется, что broadcastUpdate не запускается при изменении содержимого файла.

Это код, перехваченный служащим сервиса:

workbox.routing.registerRoute(/\.(?:css)$/,
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'css-cache',
    broadcastUpdate: {
      channelName: 'api-updates'
    },
    plugins: [
      new workbox.broadcastUpdate.Plugin(
        'api-updates'
      )
    ]
  })
);

И я слушаю это в моем основном файле (index.js). Фрагмент кода там

const updatesChannel = new BroadcastChannel('api-updates');
updatesChannel.onmessage = function(e) {
  console.log('Received', e.data);
  alert('updated');
};

Когда содержимое файла css изменяется, сообщение не обновляется в updatesChannel.

Любая помощь будет высоко ценится. Спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Я тоже это попробовал, и те же результаты для меня ... оказалось, что заголовки не читаются клиентом.Это вещь CORS.Для меня это решило явное добавление этих заголовков (или тех, которые вы используете) в настройках Django:

CORS_EXPOSE_HEADERS = ['Allow', 'Content-Length', 'ETag', 'Last-Modified', ] 
...