打开 .env.production 这个生产环境的环境变量文件,改一下接口的基本地址,把它设置成本地的接口地址,http://localhost:3001。
在终端,项目所在目录的下面,先停止运行项目的开发服务,然后执行一下 npm run build,编译的时候会出问题,因为 Next.js 在编译的时候会请求接口获取数据,现在接口服务有问题,所以编译的时候也会出现问题。
在服务端这里,执行 docker-compose restart,重新启动一下应用的服务。
再回到 Next.js 项目,重新执行编译命令。成功以后再执行一下 npm run start ,运行编译生成的应用。然后再停止服务端的 mysql 这个服务。
在浏览器,访问一下内容页面,现在页面上会显示一条默认的错误消息,并没有显示具体的错误消息,这样做主要是为了安全。在终端可以观察具体发生的错误。
我们可以定制一下这个默认的在生产环境上显示的错误消息。
配置
先打开 app/config ,在应用的配置里面添加一个新的配置,名字是 isProduction ,它的值可以判断一下 process.env.NODE_ENV 是否等于 production。
Error
打开 posts/error ,修改一下组件的视图,可以判断一下 appConfig.isProduction,如果当前是生产环境,显示一条默认的错误信息。' 当前出了点小问题,我们会尽快解决:)' ,如果不是生产环境,就显示这个 error.message。
测试
在终端,我们还是需要先重新启动一下服务端应用。成功以后,在到 Next.js 项目这里,执行 npm run build 编译应用,再执行 npm run start 运行编译生产的应用。
再到服务端,停止一下服务端的 mysql 服务。
在浏览器,观察一下页面的显示,现在如果内容页面出问题的话,页面就会显示我们自己定制的错误信息了。