Тильда используется для обозначения корня приложения.Например, если ваше приложение настроено на использование другой базы путей (с использованием UsePathBase()
), то эта база путей учитывает входящие запросы при использовании динамических путей с использованием символа тильды.
Однако этот символне ярлык для достижения корня статических файлов.Вполне допустимо использовать относительный к приложению путь с использованием тильды для достижения нестатического пути, например, если у вас есть какое-то другое промежуточное ПО, которое может отвечать на запросы.
Концептуально это также было бы невозможночтобы тильда автоматически выбирала, где находятся статические файлы, по нескольким причинам:
- Когда вы делаете
app.UseStaticFiles(requestPath: …)
, этот путь хранится только локально в промежуточном ПО статического файла.Информация об этом корне не доступна извне. - Технически, вы можете полностью использовать несколько статических файловых промежуточных программ, вызывая
UseStaticFiles()
несколько раз с различными конфигурациями.Таким образом, не было бы способа правильно узнать, к какому корневому статическому файлу вы обращаетесь.
Я бы порекомендовал вам по умолчанию использовать промежуточное ПО статических файлов.Таким образом, статические файлы, такие как favicon.ico
, преимущество которых заключается в том, что они находятся в корневом каталоге, могут по-прежнему корректно обслуживаться.Если вы хотите, чтобы ваши файлы находились в подпути, попробуйте просто создать подпапку внутри wwwroot
.Таким образом, вы также получите правильный IntelliSense при использовании тильды в своих представлениях Razor.