我通常对单页应用程序的做法是使用单个整体式应用程序服务器,该服务器既返回 HTML,又响应 AJAX 请求。我会将所有 AJAX 端点(通常返回 JSON)放在一个命名空间下,例如/api
。所有其他请求都会转到 catch-all 并返回index.html
。
这看起来很复杂,我想知道是否有一种标准的方法来“正确地做这件事”。
我正在探索的一种方法是设置 nginx 以将所有包含标头的请求路由accept: text/html
到仅返回 HTML 的应用程序服务器。所有包含标头的请求accept: application/json
都将路由到 api 服务器。这似乎合乎逻辑,但我只是编造的,据我所知,它可能不是最佳选择。
我很好奇,想得到反馈,看看是否有一个标准的方法来做到这一点,以及我在研究过程中可能错过的任何链接。