概要
OG画像のURLがlocalhost:3000
になってしまい、公開環境で画像が表示されない。
※忘備録です。
og:image https://localhost:3000/opengraph-image.png?88v1c428287defea
使用している環境
- Next.js: 15.2.4
- React: 19.1.0
解決方法
metadataBase
に動的にURLを設定して解決。
// src/app/layout.tsx
export async function generateMetadata(): Promise<Metadata> {
const headersList = await headers();
const url = new URL(`https://${headersList.get("host")}`);
return {
title: APP_NAME,
description: APP_DESCRIPTION,
metadataBase: url,
};
}
補足
metadataBase
に環境変数から取得する方式に最初はしていたのですが、環境変数が読み込まれない問題に直面しました。
- 試したこと
-
process.env.SITE_URL
を用意し./src/app/layout.tsx
から読み込み -
process.env.NEXT_PUBLIC_SITE_URL
を用意し./src/app/layout.tsx
から読み込み
-