2017-02-25 46 views
2

我创建路由五月网页这样无法加载刷新路线PARAMS后指数

angular.module("ui",[]).config(function($routeProvider,$locationProvider,$httpProvider) 
{ 
    $routeProvider.when('/home', 
    { 
    templateUrl: 'home.html' 

    }) 
    .when('/login', 
    { 
    templateUrl: 'login.html' 

    }) 
    .when('/sign_in', 
    { 
    templateUrl: 'create_account.html' 

    }) 
    .when('/profil', 
    { 
    templateUrl: 'profil.html' 

    }) 
    .when('/note/:id', 
    { 
    templateUrl: 'view_note.html' 

    }) 
    .when('/editNote/:id', 
    { 
    templateUrl: 'edit_note.html' 

    }) 
    .otherwise({ 
    redirectTo: '/home' 
    }); 
    $locationProvider.html5Mode(true); 
}); 

和服务器端代码(expressjs)

app.get('/*', function(req, res) { 
    res.sendFile(__dirname + '/views/index.html') 
}); 
app.get('/note/:id', function(req, res) { 
    res.sendFile(__dirname + '/views/index.html') 
}); 
app.get('/note/*', function(req, res) { 
    res.sendFile(__dirname + '/views/index.html') 
}); 
app.get('/:id', function(req, res) { 
    res.sendFile(__dirname + '/views/index.html') 
}); 

所以我所有的路由配置运行完美但是当我尝试刷新我的页面时,几乎所有的页面都运行正常,除了带有/editNote/:id路由配置的页面。那么如何解决这个服务器端的路由问题(expressjs)

enter image description here

+0

那么,什么是错误? – digit

+0

您不必为每条路径设置新路线。只留下一个,并将其设置为'*'(快速) –

+0

@Patryk我已经尝试将'/ *'更改为'*',但仍然不起作用 –

回答

0

终于可以找出真正的问题,它之间的路由同名的原因猫鼬路线和express/angularjs路线。所以我改变了angularjs的路由名称

0

在服务器上添加文件:

app.use('/*', function (req, res) { res.sendFile(__dirname + '/views/index.html'); });

删除

app.get('/note/*', function(req, res) { 
    res.sendFile(__dirname + '/views/index.html') 
}); 
+0

仍然一样,即使我将'/ *'更改为'* ' –

+0

即使您删除了所有'/ *',?发生我从来没有像这样的网址。 –

+0

是的,它仍然是相同的 –