Недавно я переключился на хрен на 0,4.5, и он изменил способ работы сокета.
Я ранее использовал connect-modrewrite, и он работал довольно хорошо (имели некоторые проблемы с URL-адресами, сгенерированными параметром /:).
Вот старая версия, которая работала с grunt 0.4.1 от генератора angular 0.8.0 с частью промежуточного программного обеспечения, модифицированной мной для использования html5mode.
connect: {
options: {
port: 9000,
hostname: '*IP HERE*',
livereload: 35729,
middleware: function (connect, options) {
var optBase = (typeof options.base === 'string') ? [options.base] : options.base;
return [require('connect-modrewrite')(['!(\\..+)$ / [L]'])].concat(
optBase.map(function(path){ return connect.static(path); })
);
}
},
livereload: {
options: {
open: true,
base: [
'.tmp',
'<%= yeoman.app %>'
]
}
},
Вот новая версия от генератора angular 0.9.0-1
connect: {
options: {
port: 9000,
hostname: '*IP HERE*',
livereload: 35729
},
livereload: {
options: {
open: true,
middleware: function (connect) {
return [
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect.static(appConfig.app)
];
}
}
},
Как я могу изменить это, чтобы использовать mod-rewrite или любой другой метод для достижения html5mode?
Я попытался использовать предоставленный здесь метод: https://gist.github.com/nnarhinen/7719157 Я объединил его, чтобы создать следующее:
middleware: function (connect) {
return [
connect.static(modRewrite(['^[^\\.]*$ /index.html [L]'])),
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect.static(appConfig.app)
];
}
Это позволяет мне просматривать нормальный вид, но часть modRewrite, похоже, не делает то, что ему нужно, чтобы добраться до любого другого вида через URL.