Node.js 如何在设置代理服务器时使用本地静态文件

Node.js 如何在设置代理服务器时使用本地静态文件,node.js,express,http-proxy,node-http-proxy,Node.js,Express,Http Proxy,Node Http Proxy,我正在使用NODE和EXPRESS设置代理服务器。我在本地和代理服务器中有相同的设置/代码库。但是我想使用本地机器的所有js、css、图像和其他静态内容,以及代理服务器的json响应。现在,由于代理服务器也有相同的js、css和图像,所以它从代理服务器获取了所有信息。我是否需要限制URL调用不从代理中选择js、css、图像和其他静态内容,而是从本地选择。我该怎么做?以下是代码结构(本地和代理) 我想从本地使用/WebContent下的所有内容。 以下是我设置代理的方式: var proxy =

我正在使用NODE和EXPRESS设置代理服务器。我在本地和代理服务器中有相同的设置/代码库。但是我想使用本地机器的所有js、css、图像和其他静态内容,以及代理服务器的json响应。现在,由于代理服务器也有相同的js、css和图像,所以它从代理服务器获取了所有信息。我是否需要限制URL调用不从代理中选择js、css、图像和其他静态内容,而是从本地选择。我该怎么做?以下是代码结构(本地和代理)

我想从本地使用/WebContent下的所有内容。 以下是我设置代理的方式:

var proxy = httpProxy.createProxyServer();

    app.route('/app/*$').all(function (req, res) { // proxy all requests

        proxy.web(req, res, {target: 'http://proxy-server:7001'}); //sandbox
    });

根据您的文件结构,您可以使用
express.static
将静态
/WebContent
目录映射到
WebContent
虚拟路径,如下所示:

var proxy = httpProxy.createProxyServer();

app.use('/app/js', express.static('WebContent/js'));
app.use('/app/css', express.static('WebContent/css'));
app.use('/app/etc', express.static('WebContent/etc'));

app.route('/app/*$').all(function (req, res) { // proxy all requests
    proxy.web(req, res, {target: 'http://proxy-server:7001'}); //sandbox
});

对于您希望从本地计算机提供的静态内容,是否可以从公共路径根提供所有内容,例如
/public
?是的,我创建了一个公共文件夹,并将/WebContent中的所有内容放入其中…这样行吗?顺便问一下,在这种情况下,“/WebContent”和“/public”不是一样吗?我试过了,但它仍然从代理服务器获取静态内容,可能是因为我设置的URL路由符合该标准?啊,我想我的代码示例中有一个错误。我应该直接将dir名称传递给静态方法。我已经更新了它,试一试。基本上,我的应用程序是以“app”的名称部署的,所有静态内容都在/WebContent下,它是一个根文件夹。因此,当我打电话时,它会查找url为“/app/js/file.js”的js(同样适用于css、图像或其他静态内容),并且由于此url通过路由标准(“/app/*$”),它从服务器而不是本地选择内容,因此您希望路由
/app/WebContent
为您的本地内容提供服务吗?部署时,没有“app”是应用程序名称,它会查找根目录下的所有资源,其中/WebContent
var proxy = httpProxy.createProxyServer();

app.use('/app/js', express.static('WebContent/js'));
app.use('/app/css', express.static('WebContent/css'));
app.use('/app/etc', express.static('WebContent/etc'));

app.route('/app/*$').all(function (req, res) { // proxy all requests
    proxy.web(req, res, {target: 'http://proxy-server:7001'}); //sandbox
});