asp.net-core - Hangfire仪表板链接指向错误的路线
问题描述
问题是,当应用程序部署到非根上下文时(即http://root/someAppName/
仪表板默认可在 处访问http://root/someAppName/hangfire
)。但是仪表板缺少任何 js 和 css,因为它们是从错误的位置下载的。链接也会出现同样的问题(位置错误)。他们都指向http://root/someLinkName
跳过/someAppName
上下文的一部分。我正在使用 ASP.NET Core 2.2。
此处发现了类似的问题,但尚未解决,此外,它不涉及 ASP.NET Core。如何正确设置我的应用程序以缓解此问题?该应用程序无法部署到根上下文,需要保留在/someAppName
.
解决方案
当带有 Hangfire 的 ASP.NET Core 应用程序部署在网关或负载平衡器后面时,这是一个已知问题。请参阅this、this和this以供参考。解决方法是配置网关(负载均衡器)以传递X-Forwarded-PathBase
给应用程序并在之前添加以下中间件app.UseHangfireDashboard()
:
app.Use((context, next) =>
{
var pathBase = context.Request.Headers["X-Forwarded-PathBase"];
if (pathBase != null)
context.Request.PathBase = new PathString(pathBase);
return next();
});
app.UseHangfireDashboard();
推荐阅读
- mongodb - Mongo中的文本搜索:查找包含空格的项目名称
- c# - 将 Visual Studio Windows 窗体设计器用于非窗体(如面板或 otner)
- php - 使用多选更新 MySQL
- python - Tkinter:self.pack() 导致错误
- highcharts - hightchart 注释不起作用
- c# - 在 ASP.NET Core 中使用 reloadOnChange 重新加载选项
- dart - GPS是否激活 - 颤振
- javascript - 使用正则表达式替换字符串中的单词
- python - Heroku 不收集我的静态文件
- swift - Swift IBDesignables 和字符间距(紧缩)