浏览器触发了SPA内部的重新加载,具有角度路由

Browser triggered reload inside SPA with angular routing

本文关键字:加载 路由 SPA 内部 新加载 浏览器      更新时间:2023-09-26

我有一个由节点提供服务的角度SPA,但每当我刷新/重新加载非根页面时,基于express的服务器就会截获路由并返回"cannot GET route_X"。我的路由缺少什么功能来启用此刷新行为?

angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider',
  function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/', {
        templateUrl: 'views/nests.html',
        controller: 'NestController'
    .when('/pair/:id', {
        templateUrl: 'views/pairing.html',
        controller: 'PairController'
    })
    .when('/pairs', {
        templateUrl: 'views/pairs.html',
        controller: 'PairListController'
    });
    $locationProvider.html5Mode(true);
  }
]);

我在快递服务器中定义的唯一路线如下。。。

app.get('/', function(req, res) {
  var html = fs.readFileSync('public/views/index.html', 'utf8');
  res.send(html);
});

所有其他路由功能都存在于索引文件中。

您必须将所有请求(除了静态请求)路由到index.html:

app.use("/js", express.static(__dirname + "/public/js"));
...
app.all('/*', function(req, res) {
  var html = fs.readFileSync('public/views/index.html', 'utf8');
  res.send(html);
});