3

我正在尝试将我的静态登录页面与 express.js 应用程序(react.js 单页应用程序)结合起来。

在我的登录页面上,我使用 My server.js 为静态页面设置代理http-proxy-middleware ,如下所示:

var express = require('express');
var app = express();
var path = require('path');
var proxy = require('http-proxy-middleware');

var options = {
        target: 'http://localhost:9000', // the app
        changeOrigin: true
    };
var exampleProxy = proxy(options);

app.use('/app', exampleProxy);
app.use(express.static(__dirname + '/'))

app.listen(8080);

问题是,当我到达 localhost:8080/app/ 时,我可以访问正确的 index.html,但我无法获取资源,bundle.js 是这样获取的:http://localhost:8080/bundle.js,但显然它在 localhost:9000 上可用, 不是 8080

当应用程序可以访问其静态文件时,我该如何做到这一点?

4

1 回答 1

3

您可以使用http-proxy-middleware模块的通配符路径匹配。您可以在app.use不传递路径参数的情况下实现 。

app.use(proxy('/*.js', exampleProxy));
app.use(proxy('/api', exampleProxy));

这将通过端口 9000 为您的“.js”文件提供服务。同样,您也可以通过使用此通配符匹配来提供其他资产。

于 2017-11-13T20:25:22.563 回答