ASP.NET Nginx 上托管的应用程序中的 MVC Core Razor wwwroot 没有 working/exists

ASP.NET MVC Core Razor wwwroot things not working/exists in app which is hosted on Nginx

我创建了一些使用位于 wwwroot 中的 (JS/CSS/png) 文件的视图。在特定本地 IP:PORT 的本地应用程序托管中一切正常。 如果应用程序是 运行 通过 nginx 那么一切正常,但我无法访问 wwwroot 目录中的任何文件...所以视图没有任何 js 脚本、样式等。

此应用有特定的路由前缀,例如:api/part/appName/Controller/ActionResultControllerMethod

静态文件的当前配置:

Startup.cs:

app.UseDefaultFiles();

_Layout.cshtml:

...
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>
    <script src="~/lib/font-awesome/js/all.min.js"></script>
...
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
    <link rel="stylesheet" href="~/lib/font-awesome/css/all.min.css" />

此应用的 Njinx 配置:

location /api/part/appName {
    proxy_pass http://pre_appName/api/part/appName;
}
upstream pre_appName {
    check interval=5000 rise=1 fall=3 timeout=15000;
    server MINE_HOSTED_APP_IP:MINE_HOSTED_PORT;
}

您对如何在 njinx 主机中访问此文件有什么建议吗?

网络DEV Tools有一些截图:

有来自 wwwroot 文件位置的屏幕:

几个小时后 - 答案是:

var pathToExe = Process.GetCurrentProcess().MainModule.FileName;
var pathToContentRoot = Path.GetDirectoryName(pathToExe);
Directory.SetCurrentDirectory(pathToContentRoot);
app.UseStaticFiles(new StaticFileOptions
{

    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), $"{pathToContentRoot}/wwwroot")),
    RequestPath = new PathString("/api/part/partName")
});
app.Use((context, next) =>
{
    context.Request.PathBase = "/api/part/partName";
    return next();
});
app.UseRouting();
app.UseSession();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "api/part/partName/{controller=Login}/{action=Index}/{id?}");
}
);