使用
优质
小牛编辑
145浏览
2023-12-01
通常开发 Next.js 应用你将会运行:
next build
next export
next export
命令默认不需要任何配置,将会自动生成默认exportPathMap
生成pages
目录下的路由你页面。
如果你想动态配置路由,可以在next.config.js
中添加异步函数exportPathMap
。
// next.config.js
module.exports = {
exportPathMap: async function (defaultPathMap) {
return {
'/': { page: '/' },
'/about': { page: '/about' },
'/readme.md': { page: '/readme' },
'/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
'/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
'/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } }
}
}
}
注意:如果 path 的结尾是目录名,则将导出
/dir-name/index.html
,但是如果结尾有扩展名,将会导出对应的文件,如上/readme.md
。如果你使用.html
以外的扩展名解析文件时,你需要设置 header 的Content-Type
头为"text/html".
输入下面命令:
next build
next export
你可以在package.json
添加一个 NPM 脚本,如下所示:
{
"scripts": {
"build": "next build",
"export": "npm run build && next export"
}
}
接着只用执行一次下面命令:
npm run export
然后你将会有一个静态页面应用在out
目录下。
你也可以自定义输出目录。可以运行
next export -h
命令查看帮助。
现在你可以部署out
目录到任意静态资源服务器上。注意如果部署 GitHub Pages 需要加个额外的步骤,文档如下
例如,访问out
目录并用下面命令部署应用ZEIT Now.
now