我正在使用Strapi和 Nuxt.js 来实现我的第一个 Headless CMS。我正在使用 Apollo 和 GraphQL。
我遇到了当前的错误,并且好几天都没能解决这个问题。
如果我写:
query Page($id: ID!) {
page(id: $id) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
并传递以下变量:
{
"id" : "1"
}
Run Code Online (Sandbox Code Playgroud)
我收到了正确的预期结果:
{
"data": {
"page": {
"id": "1",
"slug": "/",
"title": "Homepage"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想不通过 ID 获取内容,而是通过我在 Strapi 中创建的名为“slug”的字段获取内容。环顾四周,似乎我应该能够执行以下操作:
query Page($slug: String!) {
page(slug: $slug) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
带变量:
{
"slug" : "/"
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
{
"error": {
"errors": [
{
"message": "Unknown argument \"slug\" on …Run Code Online (Sandbox Code Playgroud) 我目前已经创建了一个pages/404.vue文件,然后在我的服务器设置中,我将任何不存在的 url 重定向到 /404.html(生成的页面)。
除了我必须声明文件扩展名(如果我重定向到 /404,它会给我重定向错误),它似乎工作正常,而且我想它还会给我一个简单的方法来创建其他服务器错误文件,如果需要的话。
但是,按照文档,我首先尝试fallback: true在里面添加generate:{ }. 这会404.html在我的根目录中创建一个页面,但使用默认的 Nuxt 布局(无限加载轮页面)。
我认为创建layouts/error.vue(根据文档)可以解决问题,但似乎并非如此。
什么是正确的做法,如果要遵循文档,为什么我的个性化 error.vue 不起作用?谢谢。