This commit is contained in:
parent
3bf9df89dd
commit
f31df7fbc8
|
|
@ -28,6 +28,26 @@ interface RootLayoutProps {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 新增的 `getValidSupabaseUrl` 函数,带有超时机制和错误处理
|
||||||
|
async function getValidSupabaseUrl(): Promise<string> {
|
||||||
|
let url = getRuntimeEnv("SUPABASE_URL");
|
||||||
|
const timeout = Date.now() + 30000; // 设置最大等待时间为30秒
|
||||||
|
|
||||||
|
while (!url || !url.includes(":")) { // 检查是否包含合法的 IP 和端口
|
||||||
|
if (Date.now() > timeout) {
|
||||||
|
throw new Error("获取有效的 Supabase URL 超时");
|
||||||
|
}
|
||||||
|
console.log("等待有效的 Supabase URL...");
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1000)); // 每1秒检查一次
|
||||||
|
url = getRuntimeEnv("SUPABASE_URL");
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export async function generateMetadata({
|
export async function generateMetadata({
|
||||||
params: { locale }
|
params: { locale }
|
||||||
}: {
|
}: {
|
||||||
|
|
@ -93,9 +113,20 @@ export default async function RootLayout({
|
||||||
console.log(`🍪 Cookie: ${cookie.name} = ${cookie.value}`);
|
console.log(`🍪 Cookie: ${cookie.name} = ${cookie.value}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const supabaseUrl = getRuntimeEnv("SUPABASE_URL");
|
// const supabaseUrl = getRuntimeEnv("SUPABASE_URL");
|
||||||
console.log("=================>Server's Supabase URL: ", supabaseUrl);
|
// console.log("==========>Supabase URL: ", supabaseUrl);
|
||||||
|
|
||||||
|
|
||||||
|
let supabaseUrl = "";
|
||||||
|
try {
|
||||||
|
// 等待直到获取到有效的 Supabase URL
|
||||||
|
supabaseUrl = await getValidSupabaseUrl();
|
||||||
|
console.log("获取到有效的 Supabase URL: ", supabaseUrl);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Supabase URL 获取失败:", error);
|
||||||
|
return <div>获取 Supabase 配置失败,请稍后再试。</div>; // 出现错误时返回一个友好的提示
|
||||||
|
}
|
||||||
|
|
||||||
// const supabase = createServerClient<Database>(
|
// const supabase = createServerClient<Database>(
|
||||||
// getRuntimeEnv("SUPABASE_URL") ?? "http://localhost:8000",
|
// getRuntimeEnv("SUPABASE_URL") ?? "http://localhost:8000",
|
||||||
// process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
// process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
||||||
|
|
@ -119,8 +150,6 @@ export default async function RootLayout({
|
||||||
|
|
||||||
const { t, resources } = await initTranslations(locale, i18nNamespaces)
|
const { t, resources } = await initTranslations(locale, i18nNamespaces)
|
||||||
|
|
||||||
//console.log("[layout.tsx]..............current locale: ", {locale});
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en" suppressHydrationWarning>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue