小编Cli*_*Mug的帖子

ASP.NET Core / Kestrel 无法一致地提供静态内容

背景信息:

  • ASP.NET Core v3.1 带 RazorPages
  • 在本地运行良好(本地主机上的 Win10 和 Kestrel)
  • 在部署到 Linux VM (Ubuntu 18) 时, wwwroot/ 中的文件返回 404 ,Bootstrap 在本地工作正常,没有 404
  • 发布方式dotnet publish -r linux-x64
  • 部署的应用程序正在运行 Kestrel 并转发来自 NGINX 的请求。

启动.cs

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    /// Included before other middleware (needed due to nginx forwarding)
    /// Per: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1
    app.UseForwardedHeaders(new ForwardedHeadersOptions
    {
        ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
    });

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();

    app.UseCookiePolicy(); // -- Added …
Run Code Online (Sandbox Code Playgroud)

http-status-code-404 razor twitter-bootstrap kestrel-http-server asp.net-core

3
推荐指数
1
解决办法
1513
查看次数