在ARM上发布到Linux后找不到静态文件

时间:2018-08-29 11:20:43

标签: c# .net-core asp.net-core-webapi

我有一个基于ASP.NET Core 2.1的Web-API项目。此Web-API必须从默认的$ killall vscode No matching processes belonging to you were found $ killall "Visual Studio Code" No matching processes belonging to you were found 文件夹传递静态文件。在Windows计算机上,下面的代码(来自Startup.cs)可以很好地工作。

wwwroot

但是,当我在ARM(public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc() .UseStaticFiles(); } } )上发布Linux版项目并将其推送到测试系统时,浏览器无法检索到静态文件。无论文件的命名方式如何,服务器始终返回HTTP 404,并且我当然会在Unix系统上使用大小写,因此不应将其重新设置为Asp.Net Core Web Application Static Files Gives 404 on Linux

服务器进程可以读取wwwroot目录的内容。我使用dotnet publish -r linux-arm进行了测试。

该服务器仅在localhost上运行,因此该项目不使用其他服务器,例如ngingx。

1 个答案:

答案 0 :(得分:1)

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

工作:

cd /home/myuser/testapp
./testapp

工作:

/home/myuser/testapp/testapp

我没有做任何更改,可以重现此内容,因此似乎必须先切换到应用程序目录。