1

我开始使用 Strapi 框架并尝试使用 Handlebars 和路线来显示页面。我遵循了文档,并用这个创建了一个控制器:

find: function *() {
    try {
      yield this.render('user', {
            firstname: 'John',
            lastname: 'Doe'
        });
    } catch (error) {
      this.body = error;
    }
  },

和一个路由器文件:

 {
    "routes": {
      "GET /": {
        "controller": "strap",
        "action": "find"
      }
    }
  }

它正在工作(没有错误),但我得到了 404 not found 状态,而不是我views/user.html在文档中的页面。我错过了什么?

4

2 回答 2

2

有趣...您的控制器和路线看起来不错。

确保您的配置如下所示:

{
  "views": {
    "map": {
      "html": "handlebars"
    },
    "default": "html"
  }
}

只有在配置中有default映射键时,才需要在控制器中指定文件扩展名。否则,您需要像这样指定扩展名:

find: function *() {
  try {
    yield this.render('user.html', {
      firstname: 'John',
      lastname: 'Doe'
    });
  } catch (error) {
    this.body = error;
  }
},

在您的 HTML 文件中:

<html>
  <body>
    <p>Firstname: {{ firstname }}<br>Lastname: {{ lastname }}</p>
  </body>
</html>
于 2015-11-24T17:15:16.290 回答
0

Oh it might be a conflict between your API routes and your public assets. Can you try to remove the ./public/index.html file?

于 2015-11-24T17:47:06.287 回答