我正在建立一个启动快速服务器的gulp任务。为了使网站正常工作,我需要将来自locahost的请求重定向到某个IP。
这就是我现在所拥有的:
var rewrite = require("connect-url-rewrite");
gulp.task('express', function() {
var express = require('express');
var app = express();
var rules = [
"^localhost\/(.*)$ 192.168.1.1\/$1"
];;
app.use(require('connect-livereload')({
port: 35729
}));
app.get('api/v1', function(req, res, next) {
res.redirect('http://192.168.1.1:8090'+req.originalUrl);
});
app.use(rewrite(rules));
app.use(express.static(__dirname));
app.listen(8090);
});
当我向localhost发出请求时:8090 / api我想重定向到192.168.1.1:8090/api。
如何重写主机名?我唯一能做的就是重写路径名。
更新
当我添加重定向时,请求会被取消。如何将所有标题传递给res对象?
答案 0 :(得分:1)
使用Gulp代理对后端的AJAX调用的一种简单方法是使用gulp-webserver。例如:
var gulp = require('gulp'),
webserver = require('gulp-webserver');
gulp.task('server', function() {
gulp.src('./public')
.pipe(webserver({
port: 8090,
livereload: true,
proxies: [
{
source: '/api',
target: 'http://192.168.1.1:8090/api'
}
]
}));
});
这将代理/api
下的所有路线,即。致电http://localhost:8090/api/v1/users/1
会将请求代理到http://192.168.1.1:8090/api/v1/users/1
。
./public
是Web服务器所服务的静态资产的根文件夹,即。您在Gulpfile中复制已编译资产文件的文件夹。