嗨我有页面刷新的问题,每当我在浏览器上按下刷新按钮时,我在页面上的不同,那么索引我得到“服务器错误在'/'应用程序。” 404错误页面。
后退按钮正常工作,但不能刷新。
当我使用http://localhost:2902/#/Dashboard?id=1时 它的工作原理
当我使用http://localhost:2902/Dashboard?id=1时 它没有
我该如何解决?
var dashboardRoutes = function ($stateProvider, $locationProvider) {
$locationProvider.hashPrefix('!').html5Mode({
enabled: true,
requireBase: false
});
$stateProvider
.state('stateIndex', {
url: '/',
views: {
"mainView": {
templateUrl: '/Dashboards/List',
controller: 'dashListController'
}
}
})
.state('stateList', {
url: '/List',
views: {
"mainView": {
templateUrl: '/Dashboards/List',
controller: 'dashListController'
}
}
})
.state('stateDashboard', {
url: '/Dashboard?id',
views: {
"mainView": {
templateUrl: function (params) { return '/Dashboards/Dashboard?id=' + params.id; },
controller: 'dashboardController'
}
}
})
.state('stateWidgetsList', {
url: '/WidgetsList',
views: {
"mainView": {
templateUrl: '/Dashboards/WidgetsList',
controller: 'widgetsListController'
}
}
});
}
dashboardRoutes.$inject = ['$stateProvider', '$locationProvider'];
RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Index",
url: "",
defaults: new { controller = "Dashboards", action = "Index" }
);
routes.MapRoute(
name: "Dashboard",
url: "Dashboards/Dashboard/{id}",
defaults: new { controller = "Dashboards", action = "Dashboard", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboards", action = "Index", id = UrlParameter.Optional }
);
}
答案 0 :(得分:0)
它只是您的服务器设置,与AngularJS无关。
您应该设置服务器以生成此网址" http://localhost:2902/Dashboard?id=1"还会导致 index.html ,但不会导致Dashboard目录。
答案 1 :(得分:0)
这是因为您已启用html5mode
,删除了您需要启用的html5mode
,您已正确完成此操作,但您还需要在服务器上实施URL重写以使其成为可能工作正常,否则刷新服务器后将无法找到html文件。