Подтвердить что ты не робот

Как сообщить 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?

4b9b3361

Ответ 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'
  });
});

Нет необходимости в другом пакете.