服务器渲染的框架/库(例如用于 React 的Nextjs、用于 Vue 的 Nuxt)和非JS REST API 后端(即 Java、Django、Go 等)是否相互排斥,或者它们可以一起使用吗?
具体来说,我正在使用 Go 在后端构建一个 REST API,我想知道我是否必须放弃它来让页面服务器呈现。
建议将单独的 API 服务器与 next.js 一起使用,即使您对两者都使用 JavaScript。api.example.com 上的 api 很常见,无论是在服务器端还是浏览器渲染,都让 next.js 应用程序与它通信。
如果您希望将它们放在同一个域中以便可以直接使用 cookie,您可以在 now.sh 中使用路径别名,这是来自 Next.js 的开发者 Zeit 的类似 Heroku 的 PaaS。这些可以使用now-server在开发中设置。这也可以通过 nginx、apache、netlify 和 CloudFront 中的反向代理,或在 AWS 的 Application Load Balancer 中使用基于路径的路由来完成。
实际上,这是两个不同的问题:Vue 和 React 是 JavaScript 框架。它们不会在基于 Go 的服务器应用程序上运行。
没有什么可以阻止您在 Go 应用程序中呈现 HTML,但 Go 服务器不会运行 JavaScript 框架。如果是这样,它可能需要额外的脚手架,此时您不妨设置一个 NodeJS 服务器来处理渲染这些路由。