Files
h-school/docs/bugs/04-wwwroot-not-found.md
T
Leonid PershinandCursor e35b8e438c Skip UseFileServer when wwwroot is missing.
Local Aspire has no published client folder; the middleware warned on every boot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 13:22:28 +03:00

1.7 KiB
Raw Blame History

Баг 4. UseFileServer без каталога wwwroot

Симптом

При локальном старте сервера (Aspire, без publish):

warn: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[16]
      The WebRootPath was not found: …\src\HSchool.Server\wwwroot. Static files may be unavailable.

Клиент в деве идёт с Vite на 5173, не с сервера. Ожидали отсутствие этого предупреждения.

Причина

Program всегда зовёт UseFileServer(). ASP.NET подставляет ContentRoot/wwwroot даже если папки нет и пишет warning 16. Каталог появляется только в опубликованном контейнере (PublishWithContainerFiles(client, "wwwroot")).

Путь

UseFileServer только если wwwroot есть на диске. Отвергнуто: пустой каталог с .gitkeep; флаг IsDevelopment (publish с Development тогда не раздаст клиент).

Задачи

  • Не вызывать UseFileServer, пока WebRootPath не существует
  • Тест предиката на существующий и отсутствующий каталог

Тест, без которого не закрыт

HSchool.Server.Tests: ClientStaticFiles.CanServe ложь на несуществующем пути, истина на живом каталоге.

dotnet test tests/HSchool.Server.Tests --filter FullyQualifiedName~ClientStaticFiles

Стоп

Протокол, сейв, Vite, PublishWithContainerFiles не трогать.