Я получил проект Web-API, основанный на ASP.NET Core 2.1. Этот Web-API должен доставлять статические файлы из папки wwwroot
по умолчанию. Это прекрасно работает с кодом ниже (из Startup.cs) на моем компьютере с Windows.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc()
.UseStaticFiles();
}
}
Но когда я публикую проект для Linux на ARM (dotnet publish -r linux-arm
) и отправляю его в тестовую систему, статические файлы не могут быть извлечены браузером. Сервер всегда возвращает HTTP 404, независимо от того, как называются файлы, и, конечно, я уважаю прописные и строчные буквы в системах Unix, поэтому он не должен быть преобразован в Статические файлы основного веб-приложения Asp.Net дают 404 в Linux .
Содержимое wwwroot dir доступно для чтения процессом сервера. Я проверил это с помощью File.ReadAllText(<full path to file in wwwroot>)
.
Сервер работает только на локальном хосте, и поэтому в проекте не используются другие серверы, такие как ngingx.