Meteor Iron Router layout template
meteor
Solution
You've placed the tags a bit incorrectly.
Templates need to be on their own & the body tag should be empty:
<body>
<!-- There isn't anything here really -->
</body>
<template name="layout">
<div class="container">
{{>yield}}
</div>
</template>
This should work for your `home` route but not your `post` ones, because you haven't given them a layout template.
You can set a universal layout so it would work on `posts` and `home` (if you didn't set a layout template there - which overrides the one below) using:
Router.configure({
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
layoutTemplate: 'layout'
});
So iron-router places your layoutTemplate in body for you.
Problem
This seems like a basic one but i can't get Iron Router to render my template in the correct place on the page. In my router controller I have: ``` Router.configure({ loadingTemplate: 'loading', notFoundTemplate: 'notFound' }); Router.map(function () { this.route('home', { path: '/', template: 'home', layoutTemplate: 'layout' }); this.route('posts', { }); this.route('post', { path: '/posts/:_id' }); }); ``` In the layout html page I have: ``` <body> <!-- some other static page stuff here --> <div class="container"> <template name="layout"> {{yield}} </template> </div> </body> ``` Basic version of home template looks like: ``` <template name="home"> <h1>Home Page</h1> </template> ``` I have tried a few variation on this but the home template is always rendered at the bottom of the layout template just before the closing body tag rather than in the div.container