Magento 2 - Зарегистрируйте таможенного работника - PullRequest
0 голосов
/ 10 февраля 2020

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

Я создал модуль со следующей компоновкой:

default. xml

<?xml version="1.0"?>
<page xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <head>

        <script src="[Vendor_Module]::js/main.js"/>

   </head>
</page>

А вот как я пытаюсь зарегистрировать своего работника (я следую учебному пособию от Google):

main. js

console.log('hello');
if ('serviceWorker' in navigator && 'PushManager' in window) {
    console.log('Service Worker and Push is supported');

    navigator.serviceWorker.register('sw.js')
    .then(function(swReg) {
      console.log('Service Worker is registered', swReg);

      swRegistration = swReg;
    })
    .catch(function(error) {
      console.error('Service Worker Error', error);
    });
  } else {
    console.warn('Push messaging is not supported');
  }

Я получил эту ошибку:

main.js:12 Service Worker Error TypeError: Failed to register a ServiceWorker for scope ('https://mywebsite') with script ('mywebsite/sw.js'): A bad HTTP response code (404) was received when fetching the script.

Итак, я попытался использовать путь stati c: /pub/static/frontend/Vendor/Theme/fr_FR/C/js/sw.js, и он работает, но кажется хакерским. Есть ли лучший способ?

Вот мое дерево каталогов модулей:

Vendor/
└── Module/
    ├── etc/
    │   └── module.xml
    ├── view/
    |   └── frontend/
    |       ├── layout/
    |       |   └──default.xml
    |       └── web/
    |           └── js/
    |               ├── main.js
    |               └── sw.js
    └── registration.php
...