【发布时间】:2019-02-10 09:22:53
【问题描述】:
我开发了一个部署在 iis 下的 mvc core 2.1 web-app。 但是我的路由引擎有问题。 一切正常,当我用这个网址调用网站时:
https://hostname/subfolder1/subfolder2/
但是当我调用没有斜杠 (https://hostname/subfolder1/subfolder2) 的网站时,我在主页上的链接不起作用,因为它们指向了错误的 url。 正确的网址是:https://hostname/subfolder1/subfolder2/link1?param=HelloWorld
如果我在没有尾部斜杠的情况下调用主页,链接如下所示: https://hostname/subfolder1/link1?param=HelloWorld
所以缺少一个子文件夹。
我的路线是:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Portal}/{action=Index}/{id?}"
);
});
这是我观点的相关代码:
<a class="app-tile" href="@app.Url" title="@app.Description" >
@app.Url 看起来像“./link1?param=HelloWorld”
那么我必须做些什么才能使两个网址都可以使用(带有和不带有斜杠)?
也许将所有不带斜线的请求重定向到带斜线的 url?但是最好的做法是什么?
【问题讨论】:
-
你看过区域吗? docs.microsoft.com/en-us/aspnet/core/mvc/controllers/… 这可能会有所帮助
-
这在我的情况下不起作用。我忘了说,subfolder1 和 subfolder2 是 IIS 中的虚拟目录。它们没有直接包含在我的项目中