2014-11-18 4 views
9

IR을 사용하는 Meteor 앱에없는 경로를 클릭하면 200 (브라우저에서 렌더링 될 때) 콘솔에 js 오류가 표시되는 HTML이 표시됩니다 그 말은 No route found for path: "/aRoute"입니다.Iron Router를 사용하여 404를 반환하는 방법

404을 어떻게 돌려 보낼 수 있습니까? , 당신은 태초 모든 경로에 사용하는 경우가 더 복잡 할 수 물론이

에 잡힐 것 -

답변

7

실제 404 년대를 처리하는 올바른 (또는 작업?) 방법이있을 것 같지 않습니다 지금. 예 : https://github.com/EventedMind/iron-router/issues/1055

일 수있는 방법을 시도해도 여전히 200 개의 상태 코드가 표시됩니다. 아래의 코드처럼 작동해야합니다 :

this.route('pageNotFound', { 
    path: '/(.*)', 
    where: 'server', 
    action: function() { 
    this.response.writeHead(404); 
    this.response.end(html); 
    } 
}); 
+1

고마워요! 우리는 그 문제가 해결 될 때까지 기다려야 할 것입니다. –

0
this.route('template404', { 
    path: '/*' 
} 

, 당신의 Router.map의 끝을 사용하여이 모든 값을 잡는다 원인 예 :

this.route('template404', { 
     path: '/posts/*' 
    } 
+0

첫 번째 해결 방법과 동일한 오류가 발생합니다. –

+0

경로를 시도하십시오 : '*'. – Sindis

+0

그것은 작동하지 않습니다. 당신이 일하고 있니? 어떤 버전의 Meteor/IR? –

6

페이지를 찾을 수없는 훨씬 쉬운 방법입니다. router.js 여기

Router.configure({ 
    layoutTemplate: "layout", 
    loadingTemplate: "loading", 
    notFoundTemplate: "notFound" 
}) 

에서 "NOTFOUND"당신이 보여주고 싶은 모든 템플릿 수 404 오류

+0

문제는 다른 앱이 사용하기 위해 오류 코드를 반환하려고한다는 것입니다. 또한 서버 라우터가 아닌 클라이언트 라우터에이 코드가 없습니까? –

+2

아니요,이 코드는 여전히 404 상태 코드를 반환하지 않습니다 * –

관련 문제