无法在Express中重新加载二级路由(运行Angular应用程序)

时间:2016-10-10 12:10:46

标签: javascript angularjs node.js express angular-ui-router

我可以使用这些设置重新加载第一级路由,但不能重新加载第二级路由。游戏'例如,下面定义的路由不能重新加载,但登录路由可以。

我在index.html中添加了<base href="/">

Angular router.js(使用angular-ui-router):

$stateProvider
    .state('root', {
        url: '/',
        templateUrl: templateUrlRoot + 'root.html',
        controller: 'gameListController',
        title: 'ManRPG'
    })
    .state('game', {
        url: '/game/:gameId',
        templateUrl: templateUrlRoot + 'game.html',
        controller: 'gameController',
        title: 'Game'
    })
    .state('login', {
        url: '/login',
        templateUrl: templateUrlRoot + 'login.html',
        controller: 'loginCtrl',
        title: 'Login'
    })

快递:

var express = require('express');
var app = express();
var router = express.Router();
var bodyParser = require('body-parser');

// ... other routes, etcetera

app.use('/api', router);

// Send the angular app, make sure that index.html is served first
app.use('/', express.static(__dirname + '/app' ));
app.get('/*', function (req, res) {
    res.sendFile(__dirname+'/app/index.html'); 
})

非常感谢任何帮助/建议。

1 个答案:

答案 0 :(得分:0)

发生此行为是因为我的一些文件包含在没有启动“/”的情况下。所以我所做的就是改变:

<script src="js/lib/angular/angular.js"></script>
<script src="js/lib/angular-ui-router/release/angular-ui-router.js"></script>

要:

<script src="/js/lib/angular/angular.js"></script>
<script src="/js/lib/angular-ui-router/release/angular-ui-router.js"></script>

这解决了我的问题。