http-proxy-middleware - 访问静态文件
http-proxy-middleware - access to the static files
我正在尝试将我的静态着陆页与 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
如何让应用程序访问其静态文件?
可以使用http-proxy-middleware
模块的通配符路径匹配。您可以在不传递路径参数的情况下实现 app.use
。
app.use(proxy('/*.js', exampleProxy));
app.use(proxy('/api', exampleProxy));
这将通过端口 9000 为您的“.js”文件提供服务。同样,您也可以通过使用此通配符匹配为其他资产提供服务。
我正在尝试将我的静态着陆页与 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
如何让应用程序访问其静态文件?
可以使用http-proxy-middleware
模块的通配符路径匹配。您可以在不传递路径参数的情况下实现 app.use
。
app.use(proxy('/*.js', exampleProxy));
app.use(proxy('/api', exampleProxy));
这将通过端口 9000 为您的“.js”文件提供服务。同样,您也可以通过使用此通配符匹配为其他资产提供服务。