Не удается избавиться от отсутствующей ошибки manifest.json

Я создаю приложение ASP.NET Core с интерфейсом ReactJs в Visual Studio 2017.

Недавно стал замечать в консоли пропавшую ошибку manifest.json - см. Ниже. Кажется, это не влияет на мое приложение, но я хочу избавиться от этой ошибки. Не удается избавиться от отсутствующей ошибки manifest.json

Если я просматриваю свое приложение в Edge, я не вижу отсутствующей ошибки manifest.json, поэтому кажется, что эта ошибка содержится только в Chrome.

Я опубликовал приложение в Azure, и снова в Chrome я получаю ту же ошибку, но не в Edge.

Есть идеи, как я могу это решить?

Вы поделились 0 деталями, никто не сможет придумать волшебный ответ ... Какой у вас код?

Cerike 04.12.2018 00:05

Какой код я должен предоставить? Внешний интерфейс? Бэкэнд? Там очень много кода, и я не уверен, кто отвечает за создание файла manifest.json.

Sam 04.12.2018 00:07

@Sam Просто выбросил это. Вы выполнили поиск в коде, чтобы увидеть, не ссылается ли что-нибудь на имя файла? Мое краткое исследование показывает, что это связано с расширениями Chrome. developer.chrome.com/extensions/manifest

Nkosi 04.12.2018 00:37

@Nkosi Теперь, когда вы упомянули об этом, я провел полный поиск - как во внешнем, так и в серверном интерфейсе - и я не нашел никаких ссылок на manifest.json. Вот что я знаю. В моем приложении есть статическая HTML-страница, используемая в качестве целевой страницы, даже если это приложение SPA, и посещение этой страницы не вызывает у меня ошибки. Если я создам новое приложение ASP.NET, я тоже не получу ошибки. Таким образом, можно с уверенностью предположить, что эта ошибка связана с интерфейсом, но затрагивает только пользователей Chrome.

Sam 04.12.2018 00:45

@Sam интересно. Для меня было странно, что это произошло только с хромом, что заставило меня взглянуть на угол расширения хрома.

Nkosi 04.12.2018 00:48

@ Sam, подождите ... у вас есть какие-либо расширения VS, которые взаимодействуют / интегрируются с Chrome? Это происходит во время отладки и во время выполнения? Просто пытаюсь исключить возможности.

Nkosi 04.12.2018 00:50

@Nkosi У меня нет таких расширений. Кроме того, я опубликовал приложение в Службе приложений Azure, и я также получаю там отсутствующую ошибку manifest.json, так что это и отладка, и время выполнения.

Sam 04.12.2018 00:52

@Sam проверь это stackoverflow.com/questions/45186993/…

Nkosi 04.12.2018 00:54

И нашел похожий на ваш, но без ответа (проверьте изображение) stackoverflow.com/questions/53147286/…

Nkosi 04.12.2018 00:55

@ Сэм, хотя любопытно. В сообщении, которое вы недавно сказали, вы заметили это (ошибку). Может быть, этого не происходило раньше или просто стало известно об этом. Мне интересно, что файл был там, но был удален через некоторое время после

Nkosi 04.12.2018 01:01

@Sam проверьте, есть ли у вас какие-либо теги link с rel=manifest, например <link rel = "manifest" href = "/manifest.webmanifest">developer.mozilla.org/en-US/docs/Web/Manifest

Nkosi 04.12.2018 01:03

Вот что в этом странного. В общем представлении есть <link rel = "manifest" href = "/manifest.json">, который используется в качестве точки входа. Когда я смотрю на свое репо, я вижу, что оно всегда было там. Согласно документации, на которую вы указали, manifest.json в основном используется прогрессивными веб-приложениями (PWA). Мое приложение не является PWA, это серверная часть API ASP.NET Core и интерфейс ReactJs, поэтому это веб-приложение. При удалении ссылки на manifest.json ошибка исчезла. Как я уже упоминал, я недавно заметил эту проблему, поэтому не знаю, что произошло. У меня нет файла manifest.json в репо.

Sam 04.12.2018 02:06

@Nkosi Спасибо за вашу помощь. Я уже проголосовал за ваши комментарии, но если вы опубликуете свой ответ в качестве ответа, я его приму. Еще раз спасибо!

Sam 04.12.2018 02:08

@ Сам готов. Рад помочь. Удачного кодирования.

Nkosi 04.12.2018 02:18

@Sam Я столкнулся с той же проблемой. Я вижу menifest.json в лазурном веб-приложении, и путь к файлу правильный. menifest.json находится в том же каталоге, что и index.html, но он показывает ошибку 404

CyberAbhay 25.04.2019 06:50

Привет, у меня такая же проблема, с той лишь разницей, что я не могу найти <link rel = "manifest" href = "/ manifest.json"> где-нибудь в коде, какие-либо предложения, в какой файл мне следует смотреть? @Сэм

akshay kishore 09.08.2019 09:14

У @Jon есть ответ ниже для хостинга в Azure.

Stephane 10.08.2019 20:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
24
17
39 289
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Ответ принят как подходящий

Скорее всего, где-то в проекте есть ссылка на manifest.json, а сам файл / ресурс не существует.

Проверьте, есть ли у вас какие-либо теги link с rel=manifest, похожие на

<link rel = "manifest" href = "/manifest.webmanifest">

The .webmanifest extension is specified in the Media type registration section of the specification, but browsers generally support manifests with other appropriate extensions like .json.

т.е.

<link rel = "manifest" href = "/manifest.json">

и удалите его из кода, чтобы устранить ошибку.

Ссылка Манифест веб-приложения

Только что принял твой ответ. В следующие 21 час вы также получите 50 бонусных баллов. Мне нравится, когда все остальные дают вам общие ответы, но потом приходит кто-то вроде вас, действительно занимается проблемой и помогает. Ваши бонусные баллы заслужены! Еще раз спасибо!

Sam 04.12.2018 02:24

Я обыскал весь свой проект, манифест больше не упоминается - можно как-то обналичить ?!

niico 23.01.2020 18:31

Файл manifest.json, скорее всего, там, где он должен быть. Решение состоит в том, чтобы добавить запись в ваш файл web.config в раздел статического содержимого для файлов .json.

<?xml version = "1.0" encoding = "utf-8" ?>
<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension = ".json" mimeType = "application/json" />
  </staticContent>
</system.webServer>
</configuration>

Если вам нужно добавить или отредактировать файл web.config, вы можете сделать это с помощью Консоль отладки Kudu. (Замените yourapp своим приложением в ссылке)

Вы также можете запустить консоль отладки с портала в разделе Инструменты разработки для своего приложения:

Если файл manifest.json действительно отсутствует, вы можете исправить это, выполнив Инструкции Google по добавлению файла manifest.json.

Манифест веб-приложения требуется Chrome для включения подсказки Добавить на домашний экран в веб-приложении.

Это должен быть принятый ответ. Я задержался на этом некоторое время. Файл был там, тег ссылки в заголовке был, но он не применялся. Я посмотрел разрешения, но ничего не вышло. Это, это был правильный ответ! Спасибо!

fischgeek 23.11.2019 19:41

Я думал, что в ASP.Net Core больше нет web.config

Ivan Paniagua 25.06.2020 18:01

Для всех, кто использует какой-то инструмент, который генерирует файлы для значков, я попробовал это решение с небольшими изменениями, и оно сработало. В моем случае у меня был файл site.webmanifest. Поэтому я изменил конфигурацию на: <mimeMap fileExtension = ". Webmanifest" mimeType = "application / json" />

Jorge Mauricio 02.11.2021 07:58

В ответ вы можете найти manifest.json в своей общей папке и ссылку на этот файл в index.html.

manifest.json предоставляет метаданные, используемые при установке вашего веб-приложения на мобильное устройство или рабочий стол пользователя. См. https://developers.google.com/web/fundamentals/web-app-manifest/

<link rel = "manifest" href = "%PUBLIC_URL%/manifest.json" />

просто добавьте crossorigin = "use-credentials", чтобы он выглядел так: <link rel = "manifest" href = "/site.webmanifest" crossorigin = "use-credentials">

У меня это не сработало. У меня есть приложение .NET Core, работающее внутри контейнера докеров, и nginx, расположенный впереди в качестве обратного прокси.

J86 27.09.2020 12:10

Начиная с Chrome 88 или около того (что кажется не таким удачным числом, как его версия может предлагать в некоторых культурах) crossorigin = "use-credentials" становится необходимым при работе веб-сайта за (принудительной) аутентификацией обратных прокси: без отправки учетных данных просто нет шанс когда-либо прочитать манифест, поскольку Chrome никогда не отправляет какие-либо учетные данные пользователя (чтобы избежать их утечки?), когда они нужны обратному прокси, поскольку в противном случае они 404 или 501.

TheDiveO 22.03.2021 09:46

Для тех, кто охотится, и нет логического решения, попробуйте в другом режиме браузера или инкогнито. У меня была постоянная ошибка для этого файла, и это был (нежелательный) плагин для Chrome. Я часто вижу это в JS из-за плохой упаковки или оставленных отладчиков и других нарушений. Обратите внимание, JS - это очень опасно и сложный язык.

Так как та же ошибка произошла после загрузки клиента React в моем случае в движок приложений Google, когда присутствовал JSON манифеста, обновление app.yaml спасло ситуацию:

  - url: /(.*\.(js|css|png|jpg|svg|json|ico|txt))$
    secure: always
    static_files: build/\1
    upload: build/.*\.(js|css|png|jpg|svg|json|ico|txt)$

IIS также может ограничивать файлы по расширению. Убедитесь, что там нет .json!

Хорошо, просто сделайте следующее:

Просто заменил звонок:

<link rel = "manifest" href = "manifest.json">

от

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

У меня была такая же проблема с ошибкой в ​​Lighthouse при поиске файла asset-manifest.json. Самый быстрый вариант - создать пустой файл с этим именем, что избавит от ошибки.

В моем случае, используя React с ядром asp.net и идентификатором, я начал получать эту ошибку, когда настраивал все мое приложение на требование аутентификации через Startup.cs.

services.AddAuthorization(options =>
        {
            options.FallbackPolicy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
        });

Это вызывало синтаксическую ошибку манифеста, потому что мой Index.html ссылался на manifest.json следующим образом:

<link rel = "manifest" href = "%PUBLIC_URL%/manifest.json" /> 

У моего приложения не было достаточных разрешений для доступа к файлу после требования аутентификации для всех страниц.

TL; DR; Даже если указанные вами файлы манифеста существуют, убедитесь, что у вас есть доступ к ним из приложения.

в вашем основном index.html будет такой код:

<link rel = "manifest" href = "%PUBLIC_URL%/manifest.json" />

замените это на это:

<link rel=“manifest” href = "/src/manifest.json">

Другие вопросы по теме