我使用了yeoman webapp生成器来构建我的应用程序。
在开发过程中,我只是使用grunt serve
来预览应用。
现在我已准备好部署我的应用程序,我发现生产环境的根上下文与开发环境不同。换句话说,而不是:
http://base:port/
我被迫使用
http://base:port/subdir_name/
这当然打破了一些东西。
有没有办法配置grunt使用的connect
服务器,将这个新的根上下文作为它的基本URI?
答案 0 :(得分:2)
我不确定您是否已找到解决方案,但我设法通过使用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;
}
}
},