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