我开始使用Strapi框架,并尝试使用Handlebars和routes来显示页面。我遵循了文档,并创建了一个控制器:
find: function *() {
try {
yield this.render('user', {
firstname: 'John',
lastname: 'Doe'
});
} catch (error) {
this.body = error;
}
},
和一个路由器文件,其中包含:
{
"routes": {
"GET /": {
"controller": "strap",
"action": "find"
}
}
}
它正在工作(没有错误),但我得到了一个404未找到的状态,而我的页面不像文档中那样处于views/user.html
中。我错过了什么?
有趣。。。你的控制器和路线看起来不错。
确保您的配置如下所示:
{
"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>
哦,API路由和公共资产之间可能存在冲突。你能试着删除./public/index.html
文件吗?