Local Aspire has no published client folder; the middleware warned on every boot. Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
1.7 KiB
Баг 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 не трогать.