如何使用 Iron 路由器显示静态 html 文件

how to display static html files using iron router

我想使用 iron router.however 渲染正常的 html 文件,当我尝试这样做时它显示了其他模板而不是我使用 iron 路由器附加它的模板。

这是我的主要布局

<template name="mainLayout">

{{> yield region="navBar"}}

{{> yield}}

{{> yield region="footer"}}

</template>

这是我的 router.js 文件的样子

Router.route('/',{
  name: 'root',
  controller: 'MainPageController'
});
Router.route("/:_id",{
  name: 'signlePost',
  controller: 'singlePostController'
});

Router.route("/about", function(){
  this.render("aboutUs")
});

这是我要渲染的模板

<template name="aboutUs">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p> 
</template>

然而,它并没有在 aboutUs 页面上再次呈现相应的 aboutUs 页面,而是呈现 singlePost 模板。请帮助

我不确定这是最好的方法,但这应该可以解决这个问题。

  1. 为您的 html 文件创建一个控制器 about_us_controller.js

    this.AboutController = RouteController.extend({
    template: "aboutUs",
    action: function() {
       this.render();
    }
    });
    
  2. 在您的router.js

    中声明

    Router.map ( function () {

    this.route("aboutUs", {path: "/about", controller: "AboutController"});

    //add all the other routes });

ps: 我无法正确显示代码,抱歉

  1. 您现在可以访问您的 'aboutUs' 模板,例如,在 link href 属性
  2. 中使用 {{pathFor 'aboutUs'}}

切换声明路由的顺序,因为你signlePost路由模式也匹配“/about”。

Router.route("/about", function(){
    this.render("aboutUs")
});
Router.route("/:_id",{
    name: 'signlePost',
    controller: 'singlePostController'
});