2017-12-05 21 views
0

각도 라우터를 사용하여 AngularJS를 NodeJS 서버와 함께 실행하려고합니다. 노드에서 다양한 뷰를 제공 할 계획은 없지만 대신 각도 라우터를 사용하려고합니다. 이 첫 페이지는 오류없이 올바르게 제공되지만 다른 링크를 클릭하려고하면 브라우저에 다음이 표시됩니다. error code. 아래는 서버 스크립트의 관련 코드, 라우팅 스크립트 및 HTML의 링크가있는 위치입니다.NodeJS 서버에서 Angular로 ngRoute를 사용하는 파일 제공

HTML 링크

<li><a href="./add">Add Workout</a></li> 

Server.js

app.get('/', function(req, res) { 
    res.sendFile(path.join(__dirname + '/public/app/views/home.html')); 
}); 

app.use(express.static('public')); 

App.js

var app = angular.module("fitness2Uapp", ["ngRoute"]); 
app.config(function($routeProvider) { 
    $routeProvider 
     .when("/", { 
      templateUrl : "./app/views/home.html" 
     }) 
     .when("/browse", { 
      templateUrl : "./app/views/browse.html" 
     }) 
     .when("/add", { 
      templateUrl : "./add.html" 
     }) 
     .when("/workout", { 
      templateUrl : "./app/views/workout.html" 
     }); 
    }); 

답변

0

는 "CATC에 넣어보십시오 h all "경로를 통해 메인 페이지로 다시 연결됩니다. 그러면 각 라우팅 메커니즘이 시작될 수 있습니다. 바로 문제는 노드 서버에서 '/ add'의 끝점 경로를 찾으려고하지만 아무 것도 찾을 수 없다는 것입니다. 이것은 매우 라우트를 서버에 설정해야합니다.

나는 개인적으로 AngularJS를 사용하고 이것을해야만했다. 모든 것이 훌륭하게 작동한다. 이것은 또한 이것은 URL를 입력 할 때이 오류를 그릴하지 않는다는 의미에서 근무 Angular2 +

// Catch all if all other routes fail to match. 
app.get('*', (req, res) => { 
    res.sendFile(path.resolve(`${__dirname}/path/to/home.html`)); 
}); 
+0

와 동일한 방식으로 수행 할 경우 확실하지, 그러나, 브라우저는에 잡힐 보이는 밖으로 포장 마차 무한 루프. –