У меня есть следующая конфигурация:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDefaultFiles();
app.UseFileServer(new FileServerOptions
{
FileProvider = new EmbeddedFileProvider(typeof(Startup).Assembly, typeof(Startup).Namespace + ".WebApp"),
RequestPath = string.Empty
});
app.UseCors("CorsPolicy");
app.UseMvc(routes =>
{
routes.MapRoute(
name: "angular",
defaults: new {controller = "Angular", action = "Index"},
template: "{*url}");
});
}
Мои файлы проекта Angular находятся в пространстве имен MyNamespace.WebApp
.
Мои AngularController
и Startup
классы находятся в пространстве имен MyNamespace
Когда я не использую MVC и не получаю доступ к http://localhost:8000, он загружает файл index.html
в папку WebApp
.Теперь для всех других запросов (например, /action
) я сопоставил его с AngularController
, который выглядит следующим образом:
public class AngularController : Controller
{
public IActionResult Index() {
return View("/index.html");
}
}
Я отладил и подтвердил, что запрос приходит к AngularController.Index()
и возвращает View("/index.html")
.Но после этого я получаю 500 Ошибка.Я предполагаю, потому что он не может найти файл представления.
Как мне сообщить MVC, чтобы извлечь файл index.html
из встроенных файлов?
Я пробовал следующее:
return View("~/index.html");
return View("index.html");
return View("~/../index.html");
return View("../index.html");
return View("~/WebApp/index.html");
return View("WebApp/index.html");
Ничего из этого не работает.Возможно, я пропустил шаг?