basePath
Next.js アプリケーションをドメインのサブパスにデプロイするには、basePath 設定オプションを使用します。
basePath を使用すると、アプリケーションにパスプレフィックスを設定できます。たとえば、''(空文字列、デフォルト)の代わりに /docs を使用するには、next.config.js を開き、basePath 設定を追加します:
next.config.js
module.exports = {
basePath: '/docs',
}
Good to know: この値はビルド時に設定される必要があり、クライアントサイドバンドルにインライン化されるため、再ビルドせずに変更することはできません。
リンク
next/link と next/router を使用して他のページにリンクするとき、basePath が自動的に適用されます。
たとえば、basePath に /docs が設定されている場合、/about を使用すると自動的に /docs/about になります。
export default function HomePage() {
return (
<>
<Link href="/about">About Page</Link>
</>
)
}
出力される html:
<a href="/docs/about">About Page</a>
これにより、basePath の値を変更するときにアプリケーション内のすべてのリンクを変更する必要がないことが保証されます。
画像
next/image コンポーネントを使用する場合、src の前に basePath を追加する必要があります。
たとえば、/docs/me.png を使用すると、basePath が /docs に設定されている場合に画像が適切に提供されます。
import Image from 'next/image'
function Home() {
return (
<>
<h1>My Homepage</h1>
<Image
src="/docs/me.png"
alt="Picture of the author"
width={500}
height={500}
/>
<p>Welcome to my homepage!</p>
</>
)
}
export default Home