ресурсы не найдены с asp.net core 3.1 + linux nginx (проблема со статическими файлами?)

Я пытаюсь запустить приложение asp.net core 3.1 MVC на моем raspberry pi 4. Приложение с его файлами ресурсов (img, css ...) отлично работает в режиме отладки IIS (Windows).

Я следовал этому руководству по настройке среды Linux: tuto Приложение хорошо запускается в Linux, но на страницах нет ресурсов.

Итак, я проверил страницы microsoft doc о статических файлах: Статические файлы и другие руководства. В основном они объясняют, как изменить путь к каталогу ресурсов, но это не моя проблема. Я просто хотел бы сначала увидеть, что он работает с wwwroot.

Я ничего не менял в startup.cs, как видите:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }
}

Ни в program.cs:

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

Содержимое конфигурационного файла nginx:

server {
    listen        80 default_server;
    server_name   _;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

Есть идеи, пожалуйста, как это исправить? Спасибо, что прочитали это :)


person AdrienM87    schedule 16.04.2020    source источник
comment
Привет! Никто не знает? :)   -  person AdrienM87    schedule 18.04.2020


Ответы (1)


Проблема решена: статические файлы ожидались в / home / user вместо того, где я установил приложение

person AdrienM87    schedule 22.04.2020
comment
Привет! так как ты решил это? вы перемещали файлы или добавляли изменения в файл conf? - person THEoneANDonly; 04.05.2021
comment
Привет! Если я правильно помню, вы должны запускать свое приложение из папки, в которой находится папка статических файлов. Вы можете попробовать это: cd / srv / myapp ### dotnet /srv/myapp/myapp.dll - person AdrienM87; 10.05.2021