gpt4 book ai didi

node.js - 从子文件夹提供 Express.JS 应用程序

转载 作者:搜寻专家 更新时间:2023-10-31 23:31:48 24 4
gpt4 key购买 nike

我使用 nginx 在同一域下提供静态 html 站点和 expressjs 应用程序。我的 nginx 配置如下所示:

    location / {
try_files $uri $uri/ /index.html;
autoindex off;
root /var/www/example.com/static/;
}

location /admin {
proxy_pass http://localhost:3007/;
proxy_set_header Host $host;
proxy_buffering off;
autoindex off;
}

如果我访问 example.com/admin,我就可以访问我在端口 3007 上运行的应用程序,所以看起来我的 app.get('/', routes.index); 正在工作但我在使用其他路线时遇到了一些麻烦。

例如:

app.get('/admin/test', function(req, res) {
console.log("test!")
});

如果我尝试访问 example.com/admin/test,根据我的日志,我只会看到 Cannot GET//test 和 404:

GET //test 404 11ms

如果我将路由更改为/test,它会出现同样的问题。任何指针那里出了什么问题。我还没有找到一种方法来使路由相对于它们安装到的基本路径 (/admin)。

谢谢!

最佳答案

注意斜线:

location /admin {
proxy_pass http://localhost:3007/; # here

}

如果删除它,将代理真实的请求 URI。

您还可以使用 Nginx 删除 /admin 部分:

location ~ ^/admin($|/.*$) {
proxy_pass http://localhost:3007$1;

}

关于node.js - 从子文件夹提供 Express.JS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027622/

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