Я создаю приложение ASP.NET Core с интерфейсом ReactJs в Visual Studio 2017.
Недавно стал замечать в консоли пропавшую ошибку manifest.json - см. Ниже. Кажется, это не влияет на мое приложение, но я хочу избавиться от этой ошибки.

Если я просматриваю свое приложение в Edge, я не вижу отсутствующей ошибки manifest.json, поэтому кажется, что эта ошибка содержится только в Chrome.
Я опубликовал приложение в Azure, и снова в Chrome я получаю ту же ошибку, но не в Edge.
Есть идеи, как я могу это решить?
Какой код я должен предоставить? Внешний интерфейс? Бэкэнд? Там очень много кода, и я не уверен, кто отвечает за создание файла manifest.json.
@Sam Просто выбросил это. Вы выполнили поиск в коде, чтобы увидеть, не ссылается ли что-нибудь на имя файла? Мое краткое исследование показывает, что это связано с расширениями Chrome. developer.chrome.com/extensions/manifest
@Nkosi Теперь, когда вы упомянули об этом, я провел полный поиск - как во внешнем, так и в серверном интерфейсе - и я не нашел никаких ссылок на manifest.json. Вот что я знаю. В моем приложении есть статическая HTML-страница, используемая в качестве целевой страницы, даже если это приложение SPA, и посещение этой страницы не вызывает у меня ошибки. Если я создам новое приложение ASP.NET, я тоже не получу ошибки. Таким образом, можно с уверенностью предположить, что эта ошибка связана с интерфейсом, но затрагивает только пользователей Chrome.
@Sam интересно. Для меня было странно, что это произошло только с хромом, что заставило меня взглянуть на угол расширения хрома.
@ Sam, подождите ... у вас есть какие-либо расширения VS, которые взаимодействуют / интегрируются с Chrome? Это происходит во время отладки и во время выполнения? Просто пытаюсь исключить возможности.
@Nkosi У меня нет таких расширений. Кроме того, я опубликовал приложение в Службе приложений Azure, и я также получаю там отсутствующую ошибку manifest.json, так что это и отладка, и время выполнения.
@Sam проверь это stackoverflow.com/questions/45186993/…
И нашел похожий на ваш, но без ответа (проверьте изображение) stackoverflow.com/questions/53147286/…
@ Сэм, хотя любопытно. В сообщении, которое вы недавно сказали, вы заметили это (ошибку). Может быть, этого не происходило раньше или просто стало известно об этом. Мне интересно, что файл был там, но был удален через некоторое время после
@Sam проверьте, есть ли у вас какие-либо теги link с rel=manifest, например <link rel = "manifest" href = "/manifest.webmanifest">developer.mozilla.org/en-US/docs/Web/Manifest
Вот что в этом странного. В общем представлении есть <link rel = "manifest" href = "/manifest.json">, который используется в качестве точки входа. Когда я смотрю на свое репо, я вижу, что оно всегда было там. Согласно документации, на которую вы указали, manifest.json в основном используется прогрессивными веб-приложениями (PWA). Мое приложение не является PWA, это серверная часть API ASP.NET Core и интерфейс ReactJs, поэтому это веб-приложение. При удалении ссылки на manifest.json ошибка исчезла. Как я уже упоминал, я недавно заметил эту проблему, поэтому не знаю, что произошло. У меня нет файла manifest.json в репо.
@Nkosi Спасибо за вашу помощь. Я уже проголосовал за ваши комментарии, но если вы опубликуете свой ответ в качестве ответа, я его приму. Еще раз спасибо!
@ Сам готов. Рад помочь. Удачного кодирования.
@Sam Я столкнулся с той же проблемой. Я вижу menifest.json в лазурном веб-приложении, и путь к файлу правильный. menifest.json находится в том же каталоге, что и index.html, но он показывает ошибку 404
Привет, у меня такая же проблема, с той лишь разницей, что я не могу найти <link rel = "manifest" href = "/ manifest.json"> где-нибудь в коде, какие-либо предложения, в какой файл мне следует смотреть? @Сэм
У @Jon есть ответ ниже для хостинга в Azure.





Скорее всего, где-то в проекте есть ссылка на manifest.json, а сам файл / ресурс не существует.
Проверьте, есть ли у вас какие-либо теги link с rel=manifest, похожие на
<link rel = "manifest" href = "/manifest.webmanifest">
The
.webmanifestextension 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 бонусных баллов. Мне нравится, когда все остальные дают вам общие ответы, но потом приходит кто-то вроде вас, действительно занимается проблемой и помогает. Ваши бонусные баллы заслужены! Еще раз спасибо!
Я обыскал весь свой проект, манифест больше не упоминается - можно как-то обналичить ?!
Файл 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 для включения подсказки Добавить на домашний экран в веб-приложении.
Это должен быть принятый ответ. Я задержался на этом некоторое время. Файл был там, тег ссылки в заголовке был, но он не применялся. Я посмотрел разрешения, но ничего не вышло. Это, это был правильный ответ! Спасибо!
Я думал, что в ASP.Net Core больше нет web.config
Для всех, кто использует какой-то инструмент, который генерирует файлы для значков, я попробовал это решение с небольшими изменениями, и оно сработало. В моем случае у меня был файл site.webmanifest. Поэтому я изменил конфигурацию на: <mimeMap fileExtension = ". Webmanifest" mimeType = "application / json" />
В ответ вы можете найти 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, расположенный впереди в качестве обратного прокси.
Начиная с Chrome 88 или около того (что кажется не таким удачным числом, как его версия может предлагать в некоторых культурах) crossorigin = "use-credentials" становится необходимым при работе веб-сайта за (принудительной) аутентификацией обратных прокси: без отправки учетных данных просто нет шанс когда-либо прочитать манифест, поскольку Chrome никогда не отправляет какие-либо учетные данные пользователя (чтобы избежать их утечки?), когда они нужны обратному прокси, поскольку в противном случае они 404 или 501.
Для тех, кто охотится, и нет логического решения, попробуйте в другом режиме браузера или инкогнито. У меня была постоянная ошибка для этого файла, и это был (нежелательный) плагин для 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)$
Хорошо, просто сделайте следующее:
Просто заменил звонок:
<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">
Вы поделились 0 деталями, никто не сможет придумать волшебный ответ ... Какой у вас код?