ASP.NET Core / Kestrel无法持续提供静态内容

Cliche咖啡杯子

背景信息:

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

启动文件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    /// Included before other middleware (needed due to nginx forwarding)
    /// Per: https://docs.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 for AaaS?

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        // Added to allow controllers
        endpoints.MapControllers();

        // Original Razor Page way
        endpoints.MapRazorPages();
    });

}

_Layout_.cshtml

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - Title</title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
</head>

wwwroot /的部分布局

  • CSS /
    • site.css
  • js /
    • site.js
  • lib /
    • 引导程序/
      • dist /
      • CSS /
        • bootstrap.css
    • jQuery /
Cliche咖啡杯子

解决。

原来,我在运行时没有注意我所在的目录dotnet aspSample.dll结果是,我的“内容根路径”将根据执行该命令时的位置而改变。要解决此问题,我必须确保在Ubuntu VM上的正确目录/publish/中,然后运行dotnet aspSample.dll以确保Content root path: /var/www/aspSample/publish正确设置了

在查看了这篇文章的不可接受的答案后:Asp.Net Core 2.0-2.2 Kestrel不提供静态内容我看到了我的答案,但描述得更好,因此在下面引用了其块。

对我来说,问题在于工作目录。尝试使用dotnet /var/www/project/project.dll启动应用程序时,我并没有注意我所在的目录。这样启动应用程序时,它将自动将当前目录用作工作目录。

当我查看另一个项目的.service文件时,意识到了这一点,该文件指定了WorkingDirectory:

...
WorkingDirectory=/var/www/project/
ExecStart=/usr/bin/dotnet /var/www/project/project.dll
...

因此,在运行项目时,请确保您位于正确的目录中,或者确保在.service文件中正确设置了WorkingDirectory。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Core + Angular静态路由

来自分类Dev

Asp.Net Core 2.1静态文件

来自分类Dev

基于ASP.NET Core 1.0的https上的Kestrel

来自分类Dev

在Asp.net Core中更改静态文件的标题

来自分类Dev

在ASP.NET Core的静态主体中访问IHostingEnvironment

来自分类Dev

什么是ASP.NET Core静态Web资产?

来自分类Dev

在 ASP.NET Core 中路由静态文件

来自分类Dev

如何在自宿主环境中在ASP.NET Core中gzip静态内容

来自分类Dev

用于ASP.NET Core的DocumentDb身份提供程序

来自分类Dev

ASP.NET Core 在调试时读取内容文件

来自分类Dev

ASP.NET Core MVC 引导模式 - 不同的内容

来自分类Dev

无法添加对.net core类库asp.net core rc2的引用

来自分类Dev

无法在ASP.NET Core项目中添加对.NET Core类库的引用

来自分类Dev

使用 ASP.NET Core 2.1 发布到 Azure 后无法加载静态文件

来自分类Dev

无法识别ASP.NET Core ViewComponent的Invoke()方法调用

来自分类Dev

AllowAnonymous无法正常使用ASP.Net Core 3.0

来自分类Dev

ASP.Net Core CookieRequestCultureProvider无法正常工作

来自分类Dev

无法在ASP.NET Core中使用HttpContext.Session

来自分类Dev

Asp.Net Core-无法从Dropzone JS上传文件

来自分类Dev

ASP.NET Core Web API InvalidOperationException:无法解析服务

来自分类Dev

Blazor无法连接到ASP.NET Core WebApi(CROS)

来自分类Dev

ASP.NET Core MVC Ajax无法正常工作

来自分类Dev

某些服务无法在ASP.NET Core中构建

来自分类Dev

ASP.NET Core 5.0 RequestSizeLimit无法正常工作

来自分类Dev

无法在Asp.Net Core中上传图片

来自分类Dev

部分剃刀页面无法在ASP .NET Core中呈现

来自分类Dev

无法在ASP.NET Core中使用中间件

来自分类Dev

ASP.Net Core MVC项目无法配置路由?

来自分类Dev

无法让套接字在 ASP.NET Core 中工作

Related 相关文章

  1. 1

    ASP.NET Core + Angular静态路由

  2. 2

    Asp.Net Core 2.1静态文件

  3. 3

    基于ASP.NET Core 1.0的https上的Kestrel

  4. 4

    在Asp.net Core中更改静态文件的标题

  5. 5

    在ASP.NET Core的静态主体中访问IHostingEnvironment

  6. 6

    什么是ASP.NET Core静态Web资产?

  7. 7

    在 ASP.NET Core 中路由静态文件

  8. 8

    如何在自宿主环境中在ASP.NET Core中gzip静态内容

  9. 9

    用于ASP.NET Core的DocumentDb身份提供程序

  10. 10

    ASP.NET Core 在调试时读取内容文件

  11. 11

    ASP.NET Core MVC 引导模式 - 不同的内容

  12. 12

    无法添加对.net core类库asp.net core rc2的引用

  13. 13

    无法在ASP.NET Core项目中添加对.NET Core类库的引用

  14. 14

    使用 ASP.NET Core 2.1 发布到 Azure 后无法加载静态文件

  15. 15

    无法识别ASP.NET Core ViewComponent的Invoke()方法调用

  16. 16

    AllowAnonymous无法正常使用ASP.Net Core 3.0

  17. 17

    ASP.Net Core CookieRequestCultureProvider无法正常工作

  18. 18

    无法在ASP.NET Core中使用HttpContext.Session

  19. 19

    Asp.Net Core-无法从Dropzone JS上传文件

  20. 20

    ASP.NET Core Web API InvalidOperationException:无法解析服务

  21. 21

    Blazor无法连接到ASP.NET Core WebApi(CROS)

  22. 22

    ASP.NET Core MVC Ajax无法正常工作

  23. 23

    某些服务无法在ASP.NET Core中构建

  24. 24

    ASP.NET Core 5.0 RequestSizeLimit无法正常工作

  25. 25

    无法在Asp.Net Core中上传图片

  26. 26

    部分剃刀页面无法在ASP .NET Core中呈现

  27. 27

    无法在ASP.NET Core中使用中间件

  28. 28

    ASP.Net Core MVC项目无法配置路由?

  29. 29

    无法让套接字在 ASP.NET Core 中工作

热门标签

归档