【问题标题】:ASP.NET Core + Angular static routeASP.NET Core + Angular 静态路由
【发布时间】:2021-04-22 03:48:37
【问题描述】:

我已经创建了默认的 ASP.NET Core + Angular 项目。我只需要通过链接 /angular 打开 Angular 应用程序。此外,当角度路由也必须位于 /angular 链接下时,例如“/angular/profile” - 个人资料页面,“/angular/item/22” - 带有项目的页面。 通过不包含“/angular”的链接,我需要打开静态文件或 MVC 视图。

默认项目使用SPA,所以我不想更改它。

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

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

有解决办法吗?

【问题讨论】:

  • 我找到了如何通过链接启动 Angular 应用程序:spa.Options.DefaultPage = "/angular";,但在使用应用程序路由链接后使用“/”重置

标签: c# angular asp.net-core asp.net-core-mvc


【解决方案1】:

如果您想指定从 Angular ClientApp 文件夹查看的基本 URL,请尝试通过转到 ClientApp > src 来设置 basehref 属性> index.html 如下:

<head>
 <meta charset="utf-8">
 <title>ClientApp</title>
 <base href="/angular">

 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>

之后的网址是这样的:

UseSpa方法不用改,我的UseSpa()方法如下:

        app.UseSpa(spa =>
        {
            // To learn more about options for serving an Angular SPA from ASP.NET Core,
            // see https://go.microsoft.com/fwlink/?linkid=864501 
            spa.Options.SourcePath = "ClientApp";

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2022-07-14
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多