代理的咕噜声问题 - 咕噜咕噜
Grunt problems with proxies - Gruntjs
我一直在努力尝试在我的 Gruntfile 中设置我的代理。 这是我Gruntfile
:
var proxySnippet = require('grunt-connect-proxy/lib/utils').proxyRequest;
module.exports = function(grunt) {
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.initConfig({
connect:{
livereload: {
options: {
middleware: function (connect) {
return [proxySnippet];
}
}
},
options: {
port: 9000,
base: 'app',
keepalive: true,
livereload: true
},
proxies: [
{
context: '/public/api',
host: 'localhost',
port: 8182,
https: false,
rewrite: {
'^/public/api': ''
}
}
]
}
});
grunt.registerTask('server', ['less', 'configureProxies', 'connect', 'connect', 'watch', 'open:dev']);
};
当我运行我的grunt server
我只能点击我的代理。 如果我尝试只点击代理以外的任何东西,我会得到一个404
. 是什么给了我这个问题?
我在使用 grunt-connect-proxy 设置代理时也遇到了很多麻烦。
挖掘grunt-contrib-connect的源代码,我意识到它在幕后使用了nodeJs
Connect框架。
在内部,middleware
选项默认为此功能:
function (connect, options) {
var middlewares = [];
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
var directory = options.directory || options.base[options.base.length - 1];
options.base.forEach(function (base) {
// Serve static files.
middlewares.push(connect.static(base));
});
// Make directory browse-able.
middlewares.push(connect.directory(directory));
return middlewares;
}
这基本上是将connect.static
和connect.directory
中间件添加到传递给connect(middlewares)
构造函数的数组中。
知道了这一点,我们可以像这样使用代理中间件nodeJs
包:
connect: {
server: {
options: {
port: 9002,
keepalive: true,
middleware: function (connect, options) {
// Proxy all requests to target the local application.
var proxyOptions = require('url').parse('http://localhost:8080/');
proxyOptions.route = '/api';
return [
require('proxy-middleware')(proxyOptions), // Include the proxy first.
connect.static(options.base), // Serve static files.
connect.directory(options.base) // Make empty directories browse-able.
];
}
}
}
}
基本上,我们将中间件添加到中间件阵列中。这个新的代理中间件会将任何传入的请求(如http://localhost:9002/api/
)转换为http://localhost:8080/
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- 代理的咕噜声问题 - 咕噜咕噜
- 节点.js脚本由于代理问题而失败
- 如何使用MeteorPad?(更新:在家工作而不是在工作——防火墙,代理问题?)
- 配置angular和grunt代理连接时遇到问题
- 超级代理的编码问题
- Javascript代理模式的问题
- 在没有代理的情况下解决跨域问题
- 代理后的客户端无法连接到weblogic服务器上运行的websocket服务器端点.如何解决这个问题?