我(最终)成功地在反向代理后面设置我的asp.net mvc应用程序(在IIS上使用ARR / URL Rewrite) .

我使用startup.cs中的中间件注册中的这个精彩片段来管理这个:

app.Use((context, next) => {
    context.Request.PathBase = new PathString("/mysite");
     next();
});

一切都是“asp”的作品 . 标签只是工作 . 查询字符串前缀正在应用于所有内容,即使连接到Azure AD的身份验证中间件最终也能正常工作 .

但是,我的标记和js代码文件中的脚本和链接不会 .

我该如何确保以下代码段转发到正确的(/ mysite-prepended)URL?

var table = $('#dataTable').DataTable(
{
'ajax': { 'url': '/mycontroller/FetchData', 'dataSrc': '' },
'destroy': true,
'columns': [
{ 'data': 'date' },
{ 'data': 'filename' },
]
});

对于常规旧标签,我可以使用我认为的出站网址重写(即使我不喜欢) . 但是我如何修复上面的相对URL,以便它在本地(没有查询字符串前缀)和使用代理的情况下工作?