gpt4 book ai didi

javascript - 如何定义 Node.js 应用上下文路径?

转载 作者:数据小太阳 更新时间:2023-10-29 05:32:57 25 4
gpt4 key购买 nike

来自 Java 世界,其中基于 Servlet 的应用程序上下文路径是根据 WAR 文件名设置的,我试图了解在 Node.js 中定义上下文路径的最佳实践。

有问题的 Node 应用程序没有在代码中定义上下文路径。例如,Express 代码假定获取故事的请求具有路径为/story/1 的 URL。因此,JavaScript UI 代码会向 http://host:port/story/1 发出请求。 .同样,对于连接到应用程序主页面的用户,他们会转到 http://host:port/。 .

我想将用户看到的 URL 更改为 http://host:port/myapp .问题是如何一致地将“myapp”定义为应用程序上下文。我正在考虑的选项:

  • 在 Express.js 代码中定义上下文。
  • 在 Nginx 代理服务器中定义上下文。

如何确保用户始终在 URL 中看到“myapp”?我是否还需要重新映射所有内部请求(由 UI 代码发出的请求)以也具有“/myapp”上下文?

使用 Nginx 似乎更干净,因为它不需要更改代码。但是这个目标是否可以仅通过 Nginx 配置来实现,如果可以,如何实现?

由于这是一个常见问题,因此必须有一个定义明确的模式来解决它。

最佳答案

正如您所说,为了上下文路径独立于应用程序代码,最好在 nginx 配置中执行此操作。

在 nginx 端,您可以使用 location 指令设置上下文路径,然后您可以从路径中删除 上下文路径 并将请求发送到应用程序。可以用 rewrite 来完成nginx 指令如下:

    location /myapp/ {
rewrite ^/myapp/(.*)$ /$1 break;
...
}

因此,在 nodejs (express) 端,您应该假设应用程序如您所说的那样在根路径 (/) 下运行。

关于javascript - 如何定义 Node.js 应用上下文路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33048058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com