我正在尝试将我的静态目标网页与express.js应用程序(react.js单页应用)结合使用。
在我的目标网页上,我使用http-proxy-middleware
设置了代理
我的静态页面的server.js看起来像这样:
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
如何让应用程序访问其静态文件?
答案 0 :(得分:2)
您可以使用http-proxy-middleware
模块的通配符路径匹配。您可以在不传递路径参数的情况下实现app.use
。
app.use(proxy('/*.js', exampleProxy));
app.use(proxy('/api', exampleProxy));
这将为您的" .js"通过端口9000文件。同样,您也可以使用此通配符匹配来提供其他资产。