我正在构建一个带有Spring Boot后端的NextJS应用程序。
除了静态页面,我的NextJS应用程序中还有使用getServerSideProps
方法通过API调用从Spring引导后端提取数据的代码。例如:
export async function getServerSideProps(context) {
const designations = await getDesignations();
if (designations) {
return {
props: { designations },
};
}
}
async function getDesignations() {
console.log("Getting designations from server");
try {
const response = await axios.get("/web/designations");
return {
error: false,
data: response.data,
};
} catch (error) {
console.error(error);
return {
error: true,
errorDetails: {
code: error.code,
description: "An unexpected error occurred",
},
};
}
}
通过在端口8080上分别运行Spring Boot API和在端口3000上分别运行NextJS应用程序,我成功地构建了应用程序并在本地对其进行了测试。
现在,我想构建这两个组件并将其打包到一个可部署的单元中,并且更愿意在Tomcat上进行部署。
只要我使用create-react-app
构建我的Reaction应用程序,我就能够使用frontend-maven-plugin
构建Reaction应用程序,并将其放到Spring Boot的public
目录中,这样就可以为Reaction应用程序提供服务。这一切都运行得很好。
现在,问题是为了让getServerSideProps
在NextJS中工作,我知道必须有Node.js后端。
因此,我想知道如何将处于当前状态的nextjs应用程序与Spring启动后端捆绑在一起,并将其打包到相同的war/jar文件中,这样我就可以完整地发布和运行它。
谢谢,斯里拉姆
1条答案
按热度按时间dxpyg8gm1#
无需使用getServerSideProps()方法即可使其工作。相反,在构建中使用静态html导出来生成html,而不是js。
使用上面的脚本进行构建。还有一个小问题,它给出了以‘.html’结尾的网址您可以参考Nextjs部署文档从here获取更多信息