gpt4 book ai didi

c# - 发布到Linux on ARM后找不到静态文件

转载 作者:行者123 更新时间:2023-12-04 01:28:37 24 4
gpt4 key购买 nike

我有一个基于 ASP.NET Core 2.1 的 Web-API 项目。此 Web-API 必须从默认 wwwroot 传送静态文件文件夹。这适用于我的 Windows 机器上的以下代码(来自 Startup.cs)。

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseMvc()
.UseStaticFiles();
}
}

但是当我在 ARM ( dotnet publish -r linux-arm ) 上发布 Linux 项目并将其推送到测试系统时,浏览器无法检索静态文件。服务器总是返回 HTTP 404,无论文件如何命名,当然我在 Unix 系统上尊重大小写,所以它不应该是 Asp.Net Core Web Application Static Files Gives 404 on Linux .

服务器进程可以读取 wwwroot 目录内容。我使用 File.ReadAllText(<full path to file in wwwroot>) 对此进行了测试.

服务器仅在本地主机上运行,​​因此该项目不使用其他服务器,如 ngingx。

最佳答案

我想我发现了,我做错了什么。我使用完整路径启动了 Web-API。相反,我必须先切换到应用程序目录。

工作:

cd /home/myuser/testapp
./testapp

工作:

/home/myuser/testapp/testapp

我没有改变任何其他东西,我可以重现这个,所以首先切换到应用程序目录,似乎是必须的。

关于c# - 发布到Linux on ARM后找不到静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52076243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com