微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 带有Angular 6捆绑文件的项目模板的ASP.NET Core 404(错误的dist输出目录)

我使用Angular项目模板https://docs.microsoft.com/en-US/aspnet/core/client-side/spa/angular?view=aspnetcore-2.1&tabs=visual-studio创建了一个ASP.NET Core应用程序

生成输出

在IIS上部署时,基本href是< base href =“/”>

生成dist / index.html中脚本的路径是:

<script type="text/javascript" src="runtime.js"></script>
<script type="text/javascript" src="polyfills.js"></script>
<script type="text/javascript" src="vendor.js"></script>
<script type="text/javascript" src="main.js"></script>

问题:404错误

Screenshot of the 404 when deployed on IIS

但是,C#Startup.cs应该正确设置输出目录的路径

由于以下代码,ASP.NET Core项目应该知道这些文件位于ClientApp / dist目录中:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        // In production, the Angular files will be served from this directory
        services.AddSpaStaticFiles(configuration =>
        {
            configuration.RootPath = "ClientApp/dist";
        });
    }

为什么基本路径设置不正确?

该项目在IIS上运行,我们可以看到index.html的后台初始化消息正确显示,但如图所示,所有资源都加载到服务器的根“/”上,因此它们获得404.

如果我尝试加载http:// {SERVERIP} / {PROJECTNAMEHERE} /runtime.js,我发现它有效,所以我猜它可能只是基本href的问题.

如何从ASP.NET Core动态设置基本href?

解决方法:

在Setrákus建议将此行包含在我的Startup.cs文件中后,我继续遇到此问题

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseSpaStaticFiles();
}

经过一些反复试验,我发现以下内容我有用:

>删除ClientApp中的dist文件
>运行一个角度构建命令,指定网站基础href,例如,如果我的目标是http://localhost/ABC,那么我会运行

'ng build --base-href /ABC/'

这处理了角度应用程序,但.NET Core方面也需要进行更改.

看看GitHub上的一些类似问题,似乎启用了角度cli中间件UseAngularCliServer()的调用导致了这个问题.

删除UseAngularCliServer()调用如果您只是测试,或者如果这是针对正确的托管环境,您可以简单地将其注释掉,将ASPNETCORE_ENVIRONMENT环境变量更改为“生产”以跳过if块.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    if (env.IsDevelopment())
    {
       //spa.UseAngularCliServer(npmScript: "start");
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐