У меня это работает, но не элегантно
(1) Angular
Это выводит его в папку
~/Areas/AreaName/Views/ControllerName/ClientApp/(all angular files here)
У него есть пути, такие как
<button class="k-button" routerLink="AreaName/ControllerName/LazyLoad">LazyLoad</button>
<button class="k-button" [routerLink]="['AreaName/ControllerName/Home']">Home</button>
Маршрут для отложенной загрузки выглядит следующим образом
{
path: 'AreaName/ControllerName/LazyLoad',
loadChildren: './lazyLoad/lazyLoad.module#LazyLoadedModule'
}
(2) MVC
В AreaRegistration у меня есть этот дополнительный маршрут для углового кода
context.MapRoute(
"Angular",
"AreaName/ControllerName/{*.}",
new { controller = "ControllerName", action = "Index", id = UrlParameter.Optional });
И он работает нормально, когда он пытается загрузить ленивый раздел загрузки, он смотрит по пути
/AreaName/lazyLoad-lazyLoad-module.js
Я мог бы понять, если он смотрел в '/' или 'AreaName / ControllerName' или что-топохоже, но не этот путь
Чтобы сделать эту работу, у меня есть код в Global.ascx.cs Application_Error, который обнаруживает 404 и перенаправляет его на правильный путь, то есть
~/Areas/AreaName/Views/ControllerName/ClientApp/
, который затем работает, он загружает ленивый загруженный файл
Я предполагаю, что есть что-то, что мне нужно сделать на угловой стороне, но я не уверен, что?
NB Это не основная версия ASPMVC
( Edit, больше информации ) Я нашел deployUrl в Angular.json.К сожалению, наш сайт может быть размещен любым из следующих способов:
https://OurSite/TopLevel
https://OurSite/_FurtherDown/TopLevel
href будет установлен в index.html, возможно, есть эквивалент для deployUrl?