使用 nginx 配置子路径访问 asp.net core 网站时,对 view 中路径生成的处理
2021-02-20 10:17
标签:doc ever eve header stage iap 直接 rtu read 这个问题是使用 docker 生成了 asp.net core 网站镜像,在使用 nginx 指向此镜像容器后,用的子路径虚拟路径,但是因为反向代理,asp.net core 并不认为是从子路径过来的,直接访问 controller 的 action 方法没问题,但是如果生成 view 内容时,view 再引用的资源路径就会错误。 在 nginx 中的配置: 解决方法(环境:.net core 3.1),修改 Startup.cs 配置: 参考: https://stackoverflow.com/questions/59202414/set-virtual-path-to-asp-net-core-mvc-application-behind-nginx-reverse-proxy https://stackoverflow.com/questions/46593999/how-to-host-a-asp-net-core-application-under-a-sub-folder 使用 nginx 配置子路径访问 asp.net core 网站时,对 view 中路径生成的处理 标签:doc ever eve header stage iap 直接 rtu read 原文地址:https://www.cnblogs.com/xwgli/p/12918904.htmllocation /backstage/web/ {
proxy_pass http://web-backstage/;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
var pathBase = Environment.GetEnvironmentVariable("ASPNETCORE_APP_PATH");
if (!string.IsNullOrWhiteSpace(pathBase))
{
Console.WriteLine("ASPNETCORE_APP_PATH:" + pathBase);
//1、配置请求基地址(解决 view 的路径生成错误):
app.Use((context, next) =>
{
context.Request.PathBase = pathBase;
return next();
});
// 2、配置静态文件基地址(不配置的话,用上面生成的地址无法访问到静态文件):
app.UsePathBase(pathBase);
}
// 正常使用静态文件
app.UseStaticFiles();
}
文章标题:使用 nginx 配置子路径访问 asp.net core 网站时,对 view 中路径生成的处理
文章链接:http://soscw.com/index.php/essay/57927.html