introduction
从9.5.0开始,Base Path 增加 ..
为了部署一个Next.js 应用在一个域名的子路径下,你能够使用basePath
配置选项
basePath
允许你能够设置一个应用的路径前缀,举个例子,使用/docs
替代/
(默认),打开next.config.js
并增加 basePath
配置
module.exports = {
basePath: '/docs',
}
注意: 这个值必须在构建时设置并且不能够改变(在运行时),因为这个值内链到了客户端打包中 …
Links
当我们使用next/link
以及 next/router
链接到其他页面将自动的应用basePath
举个例子,假设我们使用/about
将自动的转换为/docs/about
,当basePath
设置为/docs
export default function HomePage() {
return (
<>
<Link href="/about">
<a>About Page</a>
</Link>
</>
)
}
输出的HTML
<a href="/docs/about">About Page</a>
确保你改变basePath
的值得时候不需要改变应用中的所有链接 ..
图片
当使用next/image
组件的时候,你需要增加basePath
到src
的前面 ..
例如: 使用/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
但是这种提供静态文件的方式,还需要硬编码基础路径,这很难接受,我们可以使用环境变量替换 …