Я развернул сайт ASP.NET MVC 6 для Azure с Git. Подробности о развертывании можно найти в этом сообщении в блоге, но в основном я использую DNU для публикации, а затем kudu, чтобы нажать его на сайт Azure.
Используя IHostingEnvironment
, я получаю ApplicationBasePath. Проблема в том, что пути, которые я возвращаю, очень разные на localhost и на Azure.
Azure: "D:\home\site\approot\src\src"
Localhost: "C:\Users\deebo\Source\mysite\site\src"
Я хочу использовать базовый путь для получения полного пути к папке, содержащей некоторые изображения: wwwroot/img/gallery/
Я обошел это со следующим кодом:
var rootPath = _appEnvironment.ApplicationBasePath;
var pathFix = "../../../";
if(_hostingEnvironment.IsDevelopment())
{
pathFix = string.Empty;
}
var imagesPath = Path.Combine(rootPath, pathFix, "wwwroot", "img", "gallery");
Это может работать, но кажется взломанным.
Возможно ли, что мой метод развертывания влияет на это?
Есть ли более последовательный способ получить путь к приложению?