Как я могу получить ядро asp.net для работы с файлом index.html внутри моего wwwroot?
Причина, по которой я хочу это сделать, заключается в том, что я разрабатываю приложение angular 4, используя CLI angular, и он заботится обо всем процессе сборки. Я установил его для сборки в каталог wwwroot моего основного проекта asp.net, но ядро asp.net не хочет его обслуживать.
Сначала я попытался вернуть html файл через контроллер. Я пробовал этот маршрут:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
И затем в контроллере я возвращаю html файл следующим образом:
public IActionResult Index()
{
var webRoot = _env.WebRootPath;
var path = System.IO.Path.Combine(webRoot, "index.html");
return File(path, "text/html");
}
Это не сработало. Он вернул 404 не найденное исключение и дал путь, но путь, который он дал, был правильным путем к файлу index.html(я вырезал и вставил его в проводник и файл открыл).
Я также объявляю их при запуске:
app.UseStaticFiles();
app.UseDefaultFiles();
Затем я попытался удалить маршрут по умолчанию. Теперь я могу добраться до файла index.html, но только если я введу имя файла, то есть:
локальный: 58420/index.html
Если я попытаюсь получить доступ к корню домена без указанного "index.html", я получаю ошибку 404.
Каков правильный способ ссылки на index.html как страницу по умолчанию? Я предполагаю, что делать это с контроллера, вероятно, лучше, потому что тогда он будет совместим с маршрутизацией angular без перезаписи.