Как сообщить gulp -connect открыть index.html независимо от URL-адреса?
У меня есть следующая задача gulp:
gulp.task('connect', function() {
connect.server({
root: __dirname,
livereload: true
});
});
и следующие маршруты Angular:
angular.module("MyApp", ["ngRoute"]).config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when("/", {
controller: "DashboardCtrl",
templateUrl: "templates/dashboard.html"
})
.when("/advertiser", {
controller: "AdvertiserCtrl",
templateUrl: "templates/advertiser.html"
})
.otherwise({
redirectTo: "/"
});
});
Когда я навещаю /
, все работает нормально (появляется панель инструментов).
Но, посетив /advertiser
, вы получите сообщение "404 - Невозможно GET/рекламодатель".
Мой основной файл Angular index.html
, который правильно открыт для /
, но не для /advertiser
.
Как я могу сказать gulp открыть index.html
независимо от URL?
Ответы
Ответ 1
Вы можете использовать опцию middleware
для использования промежуточного программного обеспечения connect-history-api-fallback
. После того, как вы установили и потребовали резервное копирование, вы добавляете его следующим образом:
gulp.task('connect', function() {
connect.server({
root: __dirname,
livereload: true,
middleware: function(connect, opt) {
return [ historyApiFallback ];
}
});
});
Ответ 2
В качестве альтернативы вы можете использовать gulp-connect
собственный параметр fallback
для этого:
gulp.task('connect', function() {
connect.server({
root: 'path/',
livereload: true,
fallback: 'path/index.html'
});
});
Нет необходимости в другом пакете.