Правильная настройка «Scope» для манифеста.Не работает, как ожидалось - PullRequest
0 голосов
/ 22 сентября 2019

Для моего pwa у меня возникла проблема, когда manifest.json вызывается в конце любой страницы, на которой я нахожусь, например mydomain.com/subpage/manifest.json, что, по моему мнению, неверно и должно вызываться только для домашней страницы, например mydomain.com/manifest.json, потому что этогде находится мой манифест (папка src), и другие страницы должны обрабатываться как обычно, потому что я считаю, что это вызывает проблемы, когда перезагрузка подстраницы вызывает ошибку и перенаправляет на домашнюю страницу

При просмотре этого файла настройки манифеста выглядят как

"scope": "/",
"start_url": "/",

должен работать, но он все равно вызывает mydomain.com/subpage/manifest.json на подстраницах, и я получаю ошибки Uncaught SyntaxError: Unexpected token < и Manifest: Line: 1, column: 1, Syntax error., которые я прочитал, как-то связано с чтением js как html или чем-то другим, но я не знаю, как это происходитили решение

мой индекс просто имеет

<link rel="manifest" crossorigin="use-credentials" href="./manifest.json">
<script async src="./pwacompat.js"></script>

Idk, если его потому, что манифест находится в корне, а «область действия» не ограничивает манифест только корнем, а скорее все подстраницы, включенные в корень тожеили как все это действительно работает или что идеально, просто знайте, что это дает мне ошибки, но не смог найти и подобные вопросы, хотя тздесь были кусочки.

1 Ответ

1 голос
/ 23 сентября 2019

scope не влияет на то, откуда загружается manifest.json.Это невозможно, так как у тебя проблемы с яйцом и курицей.manifest.json загружается на основе вашей вкладки HTML.В настоящее время у вас есть следующее:

<link rel="manifest" crossorigin="use-credentials" href="./manifest.json">

./manifest.json говорит, что загружает файл manifest.json из текущего "каталога" /, /subpage/ или /subpage/subsubpage/.Как правило, вы хотите всегда загружать manifest.json из корня вашего веб-сайта следующим HTML-тегом (без .):

<link rel="manifest" crossorigin="use-credentials" href="/manifest.json">
...