Express - 为 Angular 1.x html5Mode 启用包含多个路由器文件的 catch all 不起作用
Express - enabling catch all for Angular 1.x html5Mode with multiple router files is not working
好吧,这个问题来自 post,这也是我的问题,但有点转向了这个问题。
现在的问题是,我的 angular 应用程序可以运行,但是当涉及到节点路由时,例如 /login,浏览器认为它是一个 Angular路线。当我刷新整个页面时,浏览器确实将其检测为节点路由,但当我在 Angular 路由启动后浏览站点时却没有检测到它。
长话短说,这是我的路线文件:
require('./routes/routes.js')(express, app);
require('./routes/default.js')(express, app);
routes.js 文件:
module.exports = function(express, app){
var router = express.Router();
router.get('/', function(req, res){
res.render('index');
});
router.get('/login', function(req, res){
if (req.isAuthenticated()){
res.render('index');
} else {
res.render('login');
}
});
default.js:
module.exports = function(express, app, passport, Promise){
var defaultRouter = express.Router();
defaultRouter.get('/*', function(req, res, next) {
res.render('./views/index.html');
});
};
非常感谢您的帮助。
谢谢
我放弃了在根 URL 上进行这项工作,所以我将 /index 添加到 baseURL 像这样:
index.html 文件:
<head>
<base href="/index/">
</head>
那个,我在routes.js文件中添加了一个catch all,如下:
module.exports = function(express, app){
var router = express.Router();
router.get('*', function(req, res, next) {
if(req.url == '/' || req.url == '/login'){
next();
} else {
res.sendfile('./views/index.html');
}
});
router.get('/', function(req, res){
res.render('index');
});
router.get('/login', function(req, res){
if (req.isAuthenticated()){
res.render('index');
} else {
res.render('login');
}
});
angular 文件当然有这个:
$locationProvider.html5Mode({
enabled: true,
requireBase: true
}).hashPrefix('');
还有。它现在就像一个魅力。
我希望这对遇到我问题的人有所帮助。
好吧,这个问题来自
现在的问题是,我的 angular 应用程序可以运行,但是当涉及到节点路由时,例如 /login,浏览器认为它是一个 Angular路线。当我刷新整个页面时,浏览器确实将其检测为节点路由,但当我在 Angular 路由启动后浏览站点时却没有检测到它。
长话短说,这是我的路线文件:
require('./routes/routes.js')(express, app);
require('./routes/default.js')(express, app);
routes.js 文件:
module.exports = function(express, app){
var router = express.Router();
router.get('/', function(req, res){
res.render('index');
});
router.get('/login', function(req, res){
if (req.isAuthenticated()){
res.render('index');
} else {
res.render('login');
}
});
default.js:
module.exports = function(express, app, passport, Promise){
var defaultRouter = express.Router();
defaultRouter.get('/*', function(req, res, next) {
res.render('./views/index.html');
});
};
非常感谢您的帮助。
谢谢
我放弃了在根 URL 上进行这项工作,所以我将 /index 添加到 baseURL 像这样:
index.html 文件:
<head>
<base href="/index/">
</head>
那个,我在routes.js文件中添加了一个catch all,如下:
module.exports = function(express, app){
var router = express.Router();
router.get('*', function(req, res, next) {
if(req.url == '/' || req.url == '/login'){
next();
} else {
res.sendfile('./views/index.html');
}
});
router.get('/', function(req, res){
res.render('index');
});
router.get('/login', function(req, res){
if (req.isAuthenticated()){
res.render('index');
} else {
res.render('login');
}
});
angular 文件当然有这个:
$locationProvider.html5Mode({
enabled: true,
requireBase: true
}).hashPrefix('');
还有。它现在就像一个魅力。
我希望这对遇到我问题的人有所帮助。