Не отображаются изображения в гибридном приложении .NET MAUI Blazor

Вопрос или проблема

Я просто попытался добавить изображение и показать его в боковой навигации, что привело к тому, что изображение не отобразилось, а вместо него появилось изображение-заполнитель. Поэтому я продолжил исследовать и выяснил, что проблема все еще существует в чистом проекте с использованием его стандартных изображений, таких как “favicon.png” или “dotnet_bot.svg”.

Итак, вот моя конфигурация:

  • Версия VS22 17.12.0 Preview 1.0
  • Microsoft Windows 11 10.0.22631 Build 22631
  • Пробовал проекты .NET 8 и .NET 9, все с одной и той же проблемой
  • Обновил .NET 8/9 SDK (dotnet-sdk-9.0.100-rc.1.24452.12-win-x64/dotnet-sdk-8.0.401-win-x64)

Я использую свой проект с целевыми платформами для Windows Desktop, Android (API 33/34), Web.

Шаблоны проектов, которые я использовал для создания своих проектов, также имеют аналогичные проблемы:

  • .NET MAUI Blazor Hybrid и Web App
  • .NET MAUI Blazor-App

Как я уже упоминал в начале, я использовал практически чистый шаблон проекта. Единственные изменения: я добавил тег <img> на странице home.razor следующим образом:

@page "/"

<h1>Привет, мир!</h1>

<img src="../../wwwroot/favicon.png" />
Добро пожаловать в ваше новое приложение.
<img src="../../Resources/Images/dotnet_bot.svg" />

Изображения добавлены по умолчанию в проект, без пользовательских ресурсов. Пути были составлены исходя из авто предложения в VS, при наведении на пути в VS отображается маленький миниатюра, что подтверждает корректность пути. Действия сборки для первого – Content, а для второго – MauiImage. Запуск этих приложений дает следующие результаты:

Цель Android
Цель Windows Desktop
Цель Web

Я попробовал множество вещей, единственная очевидная попытка – другой ноутбук… но, возможно, кто-то имеет идею, что я упускаю… это всего лишь картинка, не так ли…?! Спасибо!

Ответ или решение

Проблема с рендерингом изображений в .NET MAUI Blazor Hybrid может быть связана с несколькими факторами, даже если вы используете шаблонный проект с минимальными изменениями. Давайте разберёмся, как вы можете решить эту проблему.

1. Проверка путей к изображениям

В зависимости от структуры вашего проекта, доступ к изображениям может отличаться. Обычно в приложениях MAUI вам нужно использовать относительные пути, начиная с wwwroot. Попробуйте изменить ваши пути, например, так:

<img src="favicon.png" />
<img src="Resources/Images/dotnet_bot.svg" />

Для проекта MAUI доступ к статическим ресурсам в wwwroot не требует указания относительных путей. В случае с Resources, он должен быть такой: /Resources/Images/dotnet_bot.svg.

2. Настройка Build Action

Убедитесь, что действия сборки для изображений установлены правильно. Для файлов в wwwroot это должно быть Content, как вы уже упомянули. Для файлов в Resources действием сборки должно быть MauiImage. Проверьте это в свойствах файлов.

3. Кэширование браузера (для веб-целей)

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

4. Отключение Microsoft Visual Studio

Иногда проблемы, связанные с рендерингом изображений, могут возникать из-за кэша в Visual Studio. Попробуйте перезапустить Visual Studio или очистить проект (Clean), а затем выполнить сборку заново.

5. Проверка наличия изображений

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

6. Использование других форматов изображений

Если вы по-прежнему не видите изображений, попробуйте использовать другие форматы (например, .jpg или .png вместо .svg), для диагностики проблем с конкретными форматами.

7. Отладка

Попробуйте включить отладочную информацию, чтобы выяснить, есть ли какие-то ошибки при загрузке изображений. Если вы используете браузер, откройте инструменты разработчика (обычно это F12) и проверьте вкладку "Сеть" (Network), чтобы увидеть попытки загрузки изображений и их статус.

8. Обновление пакетов

Так как вы используете предварительную версию Visual Studio, убедитесь, что у вас установлены все последние обновления SDK и инструменты, относящиеся к .NET MAUI. Иногда в неофициальных версиях могут быть специальные ошибки, которые уже исправлены в более новых обновлениях.

Если ни один из этих шагов не поможет, возможно, стоит создать новый проект и проверить, воспроизводится ли проблема на чистом шаблоне. Это поможет определить, вызвана ли проблема чем-то в вашей конкретной настройке или это более широкая проблема с MAUI или Blazor.

Оцените материал
Добавить комментарий

Капча загружается...