Se você não pode (ou não quer) hospedar o Service Worker na raiz do domínio, é possível configurá-lo em um subdiretório — desde que atenda a requisitos específicos dos navegadores.
Pré-requisitos
- Site servindo conteúdo via HTTPS
- Acesso ao local onde o arquivo será hospedado (FTP, CMS ou backend)
- Possibilidade de configurar headers HTTP personalizados
Passo a passo
1. Baixe o Service Worker
Faça o download do sw.js no painel da Inngage (Plataformas → Web Push → Download).
2. Hospede no subdiretório desejado
Exemplo: https://www.seudominio.com.br/notificacoes/sw.js
3. Configure o cabeçalho Service-Worker-Allowed
Por padrão, um Service Worker só controla páginas no mesmo caminho (ou abaixo) de onde está hospedado. Para que ele controle o site inteiro, inclusive a raiz, a resposta HTTP do arquivo precisa incluir:
Service-Worker-Allowed: /
Exemplo prático em PHP
<?php
header("Service-Worker-Allowed: /");
header("Content-Type: application/javascript");
echo "importScripts('https://api.inngage.com.br/v1/sw.js');";
Esse código funciona como um proxy: adiciona o cabeçalho necessário e carrega o conteúdo real do Service Worker a partir da CDN da Inngage.
Verificação final
- Acesse a URL do Service Worker no navegador (ex.:
https://www.seudominio.com.br/notificacoes/sw.js) e confirme que o conteúdo carrega. - Abra o site no Chrome e pressione F12 (DevTools).
- Na aba Network, recarregue a página e busque pelo arquivo do service worker.
- Clique no arquivo, abra a aba Headers e confirme que
Service-Worker-Allowed: /está presente na resposta.

