Я хочу перейти от использования модуля ngRoute AngularJS к структуре модуля ui-router. Мое приложение использует $locationProvider.html5Mode
, и чтобы глубинные ссылки не выдавали ошибку 404, я установил модуль узла connect-modrewrite
(из https://www.npmjs.org/package/connect-modrewrite) и добавил его в файл Grunt, предоставленный генератором AngularJS Yeoman Generator, например так:
// Yeoman's Gruntfile.js
// placed outside the module.exports function.
var modRewrite = require('connect-modrewrite');
...
// modify the server config and add our modRewrite middleware.
livereload: {
options: {
middleware: function (connect) {
return [
modRewrite([
'!\\.html|\\.js|\\.css|\\.png$ /index.html [L]'
]),
lrSnippet,
mountFolder(connect, '.tmp'),
mountFolder(connect, yeomanConfig.app)
];
}
}
}
Это было здорово, но теперь я переключился на использование фреймворка модуля ui-router, если я должен делать глубокие ссылки (например) на http://myapp.com:9000/products получаю ответ:
Cannot GET /products
Очевидно, когда я перехожу на домашнюю страницу/страницу по умолчанию и нажимаю ссылку на http://myapp.com:9000/products все отлично и денди. Кто-нибудь изменил свой файл grunt, чтобы они могли использовать html5mode и ui-router с генератором AngularJS Yeoman? Заранее спасибо.