我收到了Agularjs刷新返回404错误,这个错误在过去几年中得到了很好的记录,但我在我的应用程序的一个页面上遇到了这个问题。除了我的用户信息页面,我有几个页面都会在刷新时解析到他们的页面。这是我的路由代码。我已经为我的仪表板页面(也可以)提供了路线。
$locationProvider.html5Mode(true);
$stateProvider.
state("home", {
url: "/dashboard",
controller: "dashboardController as vm",
templateUrl: 'app/dashboard/view.html',
resolve: {
user: ['oauth',
function (oauth) {
return oauth.getOrLoadUser();
}]
}
}).
state("updateInfo", {
url: "/updateInfo",
controller: "updateInfoController as vm",
templateUrl: 'app/account/updateInfo.html',
resolve: {
user: ['oauth',
function (oauth) {
return oauth.getOrLoadUser();
}]
}
}).
正如您所看到的,我正在为我的locationProvider设置Html5Mode,并且该路线与我的其他路线相同。 任何帮助将不胜感激。
更新 这是我的routeConfig的样子。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Dictionary<string, string> handleInHome = new Dictionary<string, string>();
handleInHome.Add("login", "login/{*catchall}");
handleInHome.Add("dashboard", "dashboard/{*catchall}");
handleInHome.Add("aboutus", "aboutus/{*catchall}");
handleInHome.Add("requests", "requests/{*catchall}");
handleInHome.Add("faq", "faq/{*catchall}");
foreach (var key in handleInHome.Keys)
{
routes.MapRoute(
name: key,
url: handleInHome[key],
defaults: new { controller = "Home", action = "Index" }
);
}
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
我尝试为accounts文件夹添加一个catch all,但我没有任何区别。 handleInHome.Add(“account”,“account / {* catchall}”);
答案 0 :(得分:1)
您需要在后端处理/updateInfo
路线,以确保为此路线投放Angular应用。
handleInHome.Add("updateInfo", "updateInfo/{*catchall}");