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

标签 node.js express http-proxy node-http-proxy

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

 /src
  /javacode

/WebContent
  /js
  /css
  /images
  /jsp

我希望/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
});

关于node.js - 设置代理服务器时如何使用本地静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033635/

相关文章:

javascript - 如何在另一个文件中正确应用路由

Node.js Socket.IO 客户端 'unhandled socket.io url'

node.js - 如何从命令行创建 Express EJS 项目?

node.js - 是否可以禁用/删除 ExpressJS 中特定路由的中间件?

C++ Windows自动检测代理设置

javascript - 如何设置默认 ember cli 代理

node.js - 为什么 node.bcrypt.js 无法识别我的密码?

javascript - Bluebird promise 订单问题

node.js - 如何获取服务器ip地址以在nodejs中发送邮件

java - Tomcat 6.0.35 Windows 32b 服务 useSystemProxies