路由在本地工作,而不是在Heroku服务器上

时间:2016-12-03 13:50:11

标签: angularjs heroku angular-ui-router

我的AngularJS应用程序在直接访问/登录时不会路由到/ login。如果我首先访问/然后从/到/登录路由,它将路由到/ login。

它正在处理我的本地环境,但不适用于Heroku服务器。我是否需要在Heroku服务器上配置一些设置?

我正在使用angular-ui-router在整个应用程序中路由到不同的状态。

我的app.js配置代码片段如下所示:

angular.module('app', [
 angularUiRouter
])
.config(($stateProvider) => {
    "ngInject";

    $stateProvider
        .state("home", {
            url: "/",
            template: "<home></home>"
        })
        .state("login", {
            url: "/login",
            template: "<login></login>"
        });
})

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。

由于此应用程序上的设置使用MEAN堆栈,我们还必须添加从服务器端到客户端的路由。

对于AngularJS中的所有模板,必须有从Express到AngularJS到index.html的路由

对于以角度创建的所有模板和工艺路线,我们需要获取请求并发送index.html作为响应 当我们使用angularjs stateProvider在Angularjs中路由时,我们还必须从服务器端添加到/dist/index.html的路由。 $ locationProvider.html5Mode(真).hashPrefix(&#39;!&#39;);必须在AngularJS方面的app.js中定义

我的Server.js文件的片段:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/dist'));
app.get('/', function(req, res){
  res.sendFile(__dirname + '/dist/index.html');
});
app.get('/login', function(req, res){
  res.sendFile(__dirname + '/dist/index.html');
});