How to return 404 using Iron Router

后端 未结 3 1412
星月不相逢
星月不相逢 2021-01-12 01:01

When I hit a route that doesn\'t exist on my Meteor app that uses IR, I get a 200 response with an HTML that (when rendered on a browser) displays a js error on

相关标签:
3条回答
  • 2021-01-12 01:27

    I find this much easier way to show page not found. In router.js

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

    Here "notFound" could be any template where you want to show 404 error

    0 讨论(0)
  • 2021-01-12 01:32
    this.route('template404', {
      path: '/*'
    }
    

    Use it at the end of your Router.map, cause this catches every value - if you use at the begining every path will be caught to this

    Of course you can make it more complex, for example:

    this.route('template404', {
          path: '/posts/*'
        }
    
    0 讨论(0)
  • 2021-01-12 01:35

    There don't seem to be a correct (or even working?) way of handling real 404's right now. See this issue for example: https://github.com/EventedMind/iron-router/issues/1055

    Even when you try ways which should work, you'll still end up with a 200 status code. Like this code below which should work:

    this.route( 'pageNotFound', {
      path: '/(.*)',
      where: 'server',
      action: function() {
        this.response.writeHead(404);
        this.response.end( html );
      }
    });
    
    0 讨论(0)
提交回复
热议问题