Как называется внешний HTML Angular 7 + Net Core? - PullRequest
0 голосов
/ 31 января 2019

У меня одновременно работают два приложения, первое - это новая реализация в ядре Angular 7 + asp, второе - устаревшее приложение в asp mvc 5 (нет приложения Angular, HTML не реализует никакого кода Angular)Проблема в том, что мы хотим постепенно избавиться от устаревшего приложения.Для этого мы решили вызвать рендерер определенных контроллеров (mvc5) для унаследованного приложения на сервере, поэтому вызов /legacy/menu возвращает HTML-код с меню унаследованного приложения.

Как можно изящно обманутькомпонент Angular 7, чтобы при вызове RouterModule они возвращали /legacy/menu html?Я понимаю, что это не концепция Angular, а то, что мы хотим, чтобы два компонента "один для нового приложения" и другой "для устаревшей версии", в то время как мы реализуем новую версию, имеют компонент step старой версии,Все это предварительная идея для перехода.

1 Ответ

0 голосов
/ 31 января 2019

Вам нужно просто создать новый шаблон углового проекта и посмотреть, как они это делают.Там есть более удобный метод.Или вы можете настроить статическое обслуживание файлов, используя StaticFiles

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/MyImages"
    });

    app.UseDirectoryBrowser(new DirectoryBrowserOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/MyImages"
    });
}  

. Для получения более подробной информации посетите страницу справки Microsoft для обслуживания статических файлов

. Вы можете получить более детальный контроль, используявстроенные методы для SPA

app.UseSpa(spa =>
{
    spa.Options.SourcePath = "ClientApp";

    spa.UseSpaPrerendering(options =>
    {
        options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.bundle.js";
        options.BootModuleBuilder = env.IsDevelopment()
            ? new AngularCliBuilder(npmScript: "build:ssr")
            : null;
        options.ExcludeUrls = new[] { "/sockjs-node" };
    });

    if (env.IsDevelopment())
    {
        spa.UseAngularCliServer(npmScript: "start");
    }
});

Вот справочник microsoft

...