Search code examples
meteoriron-router

Router for static site using Meteor


I'm new to Meteor and have limited experience with javascript. I've searched all the stack post and the web for a good tutorial on how to use the Iron Router package to route static pages and just can't seem to figure it this out. I would love to have someone help me understand how to setup a router.js file for Home and About. I've played with my code a lot but this is what I had before posting here. Conseptually I seem to be struggling to grasp how the routing works and all the various features of iron router and then connecting these routes into a nav bar where I can navigate between them. Thank you in advance for any help you can provide.

client/templates/application/layout.html

<template name="layout">
  <div class="container">
    {{> yield}}
  </div>
</template>

lib/router.js

Router.configure({
  layoutTemplate: 'layout'
});

Router.route('/', function () {
  this.render('home', {
    template: 'home'
  });

  this.render('about', {
    template: 'about'
  });
});

templates/home.html

<template name="home">
  <div class="container">
    <h2>Home</h2>
  </div>
</template>

Solution

  • The code you have above looks correct.

    One quirk is you're rendering two pages for your / route. You should have this:

    Router.route('/', function () {
        this.render('home', {});
    });
    
    Router.route('/about', function() {    
        this.render('about', {});
    });
    

    Remember this.render takes the first param as the template, so there's no need to define it separately anymore.

    And a new about.html page:

    <template name="home">
        <div class="container">
            <h2>Home</h2>
        </div>
    </template>
    

    Now you can use the / and /about pages (at least I hope i've not missed anything)