У меня есть два отдельных, но связанных, прогрессивных веб-приложения, каждое из которых имеет файл manifest.json
. Одно приложение доступно на /foo/app
, а другое - на /bar/app
в том же домене. Файл manifest.json
доступен в /foo/app/manifest.json
и /bar/app/manifest.json
соответственно.
На моей локальной машине они работают отлично (при условии, что я запускаю Chrome с несколькими специальными флагами командной строки, чтобы игнорировать подписанные сертификаты). Я могу установить оба приложения и получить доступ со своего телефона Android через ngrok, а также установить их там. Однако после того, как я загрузил все в стадию, я увидел эту консольную ошибку в Chrome:
Manifest: Line: 1, column: 1, Syntax error.
. Я просмотрел файл с помощью зубчатого гребня и не смог найти никаких проблем. Я прочитал другие вопросы переполнения стека, но пришел dry. Я нашел эту статью W3 о манифесте. json и решил изменить имя файла с manifest.json
на manifest.webmanifest
и использовать его с MIME-типом application/manifest+json
(согласно w3 рекомендации). Ничто из этого не имело никакого значения.
Почему при постановке возникает синтаксическая ошибка, когда она отлично работает на локальной системе? Единственное отличие состоит в том, что моя локальная установка использует самозаверяющий SSL / Сертификат TLS, поэтому, если что, я удивляюсь, что работает на локальном через ngrok!
Вот мой manifest.webmanifest
файл:
{
"short_name": "Foo",
"name": "Foo",
"icons": [
{
"src": "/img/foo-logo-no-text-192x192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "/img/foo-logo-no-text-512x512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": "/foo/app/?source=pwa",
"background_color": "#54799C",
"display": "standalone",
"scope": "/foo/app/",
"theme_color": "#54799C"
}