Javascript 相对URL';它不使用express http代理
我有一个服务器托管我的应用程序和一些微服务(它们都是非常简单的网络应用程序)。我想通过互联网访问这些服务,但不为每个服务打开端口。所以我决定在服务器上设置一个反向代理(使用express http proxy),这样我就可以通过一个端口访问所有服务。问题是,虽然我可以访问每个服务的主页,但所有相关链接都指向错误的位置 以下是一个例子: service.jsJavascript 相对URL';它不使用express http代理,javascript,node.js,express,proxy,Javascript,Node.js,Express,Proxy,我有一个服务器托管我的应用程序和一些微服务(它们都是非常简单的网络应用程序)。我想通过互联网访问这些服务,但不为每个服务打开端口。所以我决定在服务器上设置一个反向代理(使用express http proxy),这样我就可以通过一个端口访问所有服务。问题是,虽然我可以访问每个服务的主页,但所有相关链接都指向错误的位置 以下是一个例子: service.js var proxy = require('express-http-proxy'); var express = require("expr
var proxy = require('express-http-proxy');
var express = require("express")
var app = express()
app.use(express.static('public'))
app.listen(8000);
proxy.js
let express = require("express");
let proxy = require('express-http-proxy');
let app = express();
app.listen(80);
app.get("/", (req, res) => {
res.send("hello world")
});
app.use('/service/8000/', proxy("http://localhost:8000"));
假设index.html
包含以下行
如果我通过代理访问微服务,则任何相关链接都不起作用。如果我将鼠标悬停在上面的链接上,我可以看到问题出在哪里。链接看起来像这样
http://myserver.com/serivce/image.jpg
它应该在哪里
http://myserver.com/service/8000/image.jpg
注意
image.jpg
之前缺少的/8000
,好的,我解决了它。显然,当您尝试访问代理背后的服务时,您需要在URL的末尾包含/
,否则,节点http proxy
将忽略最后一部分。更多澄清的示例:
如果访问此URL,则其中的所有相对URL都将缺少8000
部分
http://myserver.com/service/8000
而这个http://myserver.com/service/8000/
工作正常。注意末尾的/
。尝试在index.html中使用