我有节点服务的角度SPA,但每当我刷新/重新加载非根页面时,基于快速的服务器拦截路由并返回“不能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);
});
所有其他路由功能都存在于索引文件中。
答案 0 :(得分:2)
您必须将所有请求(期望您的静态请求)路由到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);
});