如何为 grunt 服务器设置基本 URI
How to set the base URI for the grunt server
我使用了 yeoman webapp 生成器来构建我的应用程序。
在开发过程中,我只是使用grunt serve
来预览应用程序。
现在我已准备好部署我的应用程序,我发现生产环境与开发环境具有不同的根上下文。换句话说,而不是:
http://base:port/
我被迫使用
http://base:port/subdir_name/
这当然会破坏一些东西。
有什么方法可以配置 grunt 使用的 connect
服务器,将这个新的根上下文作为它的基本 URI?
我不确定您是否已经找到解决方案,但我设法通过使用 grunt-connect-proxy 重写重定向的功能解决了这个问题。这就是我的配置:
connect: {
options: {
port: 8001,
// Change this to '0.0.0.0' to access the server from outside.
hostname: '0.0.0.0',
livereload: 35729
},
proxies: [
{
context: '/subdir_name/',
host: 'localhost',
port: 8001,
https: false,
xforward: false,
rewrite: {
'^/subdir_name': ''
},
headers: {
'x-forwarded-server': 'Grunt Localhost development'
}
}
],
livereload: {
options: {
open: true,
middleware: function (connect, options) {
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Setup the proxy
var middlewares = [];
middlewares.push(connect.static('.tmp'));
middlewares.push(connect().use(
'/bower_components',
connect.static('./bower_components')
));
middlewares.push(connect().use(
'/app/styles',
connect.static('./app/styles')
));
middlewares.push(connect.static(appConfig.app));
middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest);
// Serve static files.
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
// Make directory browse-able.
var directory = options.directory || options.base[options.base.length - 1];
middlewares.push(connect.directory(directory));
return middlewares;
}
}
},
我使用了 yeoman webapp 生成器来构建我的应用程序。
在开发过程中,我只是使用grunt serve
来预览应用程序。
现在我已准备好部署我的应用程序,我发现生产环境与开发环境具有不同的根上下文。换句话说,而不是:
http://base:port/
我被迫使用
http://base:port/subdir_name/
这当然会破坏一些东西。
有什么方法可以配置 grunt 使用的 connect
服务器,将这个新的根上下文作为它的基本 URI?
我不确定您是否已经找到解决方案,但我设法通过使用 grunt-connect-proxy 重写重定向的功能解决了这个问题。这就是我的配置:
connect: {
options: {
port: 8001,
// Change this to '0.0.0.0' to access the server from outside.
hostname: '0.0.0.0',
livereload: 35729
},
proxies: [
{
context: '/subdir_name/',
host: 'localhost',
port: 8001,
https: false,
xforward: false,
rewrite: {
'^/subdir_name': ''
},
headers: {
'x-forwarded-server': 'Grunt Localhost development'
}
}
],
livereload: {
options: {
open: true,
middleware: function (connect, options) {
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Setup the proxy
var middlewares = [];
middlewares.push(connect.static('.tmp'));
middlewares.push(connect().use(
'/bower_components',
connect.static('./bower_components')
));
middlewares.push(connect().use(
'/app/styles',
connect.static('./app/styles')
));
middlewares.push(connect.static(appConfig.app));
middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest);
// Serve static files.
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
// Make directory browse-able.
var directory = options.directory || options.base[options.base.length - 1];
middlewares.push(connect.directory(directory));
return middlewares;
}
}
},