我需要帮助。 我开始用Asp.net核心开发angular2,一切都很完美。 为了将所有404请求重定向到index.html,我在Startup类中使用此代码。
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404
&& !Path.HasExtension(context.Request.Path.Value))
{
context.Request.Path = "/index.html";
await next();
}
});
但是,我需要返回到asp.net 4.5,现在我遇到了一个很大的路由问题。我尝试在Owin Startup类中使用类似的代码,但这并没有解决问题。
如何将所有请求移至index.html? 一个例子:我有重定向到/ logout的链接,但现在使用此代码,app.module看不到/注销,我被重定向到应用程序的主页。
在教程中如何使用angular2与asp 4.5(https://angular.io/docs/ts/latest/cookbook/visual-studio-2015.html) 在最后一段中说:
如果此应用程序使用Angular路由器,则可以进行浏览器刷新 返回404 - 找不到页面。看看地址栏。可以 包含导航网址(“深层链接”)...除/或之外的任何路径 /index.html?
您必须将服务器配置为返回index.html 要求。在此之前,请删除导航路径并再次刷新。
怎么做? 谢谢!
答案 0 :(得分:2)
您可以将所有内容重定向到index.html页面以解决此问题,这是我在其中一个项目中使用的配置代码:
system.websever
在web.config
的maximum(Set, Element):-
((set(Set,Element),
current_max(Max),
(Max > Element,
fail);
(Element > Max,
retract(current_max(Max)),
assert(current_max(Element)),
fail))
;
true
).
maximum(_, Max):-
current_max(Max).)
部分下添加此内容