英文:
Server Error: Configuration must contain `projectId`
问题
在http://localhost:3000/
,我收到以下错误消息:
服务器错误
错误:配置必须包含 `projectId`
lib\client.js
包含:
const config = {
projectId: process.env.NEXT_PUBLIC_SANITY_ID || 'xxxxx',
dataset: process.env.NEXT_PUBLIC_SANITY_DATASET || 'production',
apiVersion: '2021-03-25',
useCdn: true,
}
const client = sanityClient(config)
我已将 CORS 来源添加到我的项目,并且根目录中还有一个 .env.local.example
文件:
NEXT_PUBLIC_SANITY_PROJECT_ID="xxxxxx"
NEXT_PUBLIC_PROJECT_ID="sj830cdx"
(所以不适用于 此答案)
如果我将 env.local.example
重命名为 env.local
,http://localhost:3000/
将会加载为空白。
感谢帮助。
英文:
I have a local repo of a live NextJS/Sanity website, but I've set the Sanity projectID to a different blank Sanity project to avoid overwriting the live website.
At http://localhost:3000/
, I'm receiving:
Server Error
Error: Configuration must contain `projectId`
lib\client.js
contains:
const config = {
projectId: process.env.NEXT_PUBLIC_SANITY_ID || 'xxxxx',
dataset: process.env.NEXT_PUBLIC_SANITY_DATASET || 'production',
apiVersion: '2021-03-25',
useCdn: true,
}
const client = sanityClient(config)
I've added a CORS origin to my project & there's also a .env.local.example
in the root folder
NEXT_PUBLIC_SANITY_PROJECT_ID="xxxxxx"
NEXT_PUBLIC_PROJECT_ID="sj830cdx"
(so not solved by this answer)
If I rename env.local.example
to env.local
http://localhost:3000/
will load blank.
Help appreciated.
答案1
得分: 0
似乎你收到的错误消息表明在用于初始化 sanityClient
的 config
对象中缺少 projectId
配置值。projectId 是 Sanity 客户端正常工作所必需的配置参数。
要解决这个问题,你可以更新 lib/client.js
中的 config
对象,使用 NEXT_PUBLIC_SANITY_PROJECT_ID
:
const config = {
projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID || 'xxxxx',
dataset: process.env.NEXT_PUBLIC_SANITY_DATASET || 'production',
apiVersion: '2021-03-25',
useCdn: true,
}
然后,确保将 .env.local.example
文件重命名为 .env.local
,并将 NEXT_PUBLIC_SANITY_PROJECT_ID
的值设置为你 Sanity 项目的正确项目 ID。这应该使 sanityClient
能够正确初始化,并解决你所遇到的服务器错误。
英文:
Seems like the error message you received indicates that the projectId
configuration value is missing in the config
object used to initialize the sanityClient
. The projectId is a required configuration parameter for the Sanity client to work properly.
To fix the issue, you can update the config
object in lib/client.js
to use NEXT_PUBLIC_SANITY_PROJECT_ID
const config = {
projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID || 'xxxxx',
dataset: process.env.NEXT_PUBLIC_SANITY_DATASET || 'production',
apiVersion: '2021-03-25',
useCdn: true,
}
Then, make sure to rename your .env.local.example
file back to .env.local
and set the value of NEXT_PUBLIC_SANITY_PROJECT_ID
to the correct project ID for your Sanity project. This should allow the sanityClient
to initialize correctly and resolve the server error you were seeing.
答案2
得分: 0
我将"sanity import"更改如下,这对我有效。
import { createClient } from 'next-sanity';
此外,我读到"sanityClient configuration"已被弃用。请使用"createClient"代替。
英文:
I changed the sanity import to as below and it worked for me.
import {createClient) from 'next-sanity';
Also I read that the sanityClient configuration is deprecated. Use createClient instead.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论