Question

J'ai la tâche gulp suivante :

gulp.task('connect', function() {
  connect.server({
    root: __dirname,
    livereload: true
  });
});

et les itinéraires angulaires suivants :

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: "/"
    });
});

Quand je visite / tout fonctionne bien (le tableau de bord apparaît).

Mais, en visitant /advertiser le résultat est "404 - Impossible d'obtenir /annonceur".

Mon fichier angulaire principal est index.html, qui est ouvert correctement pour /, mais pas pour /advertiser.

Comment pourrais-je dire à Gulp d'ouvrir index.html quelle que soit l'URL ?

Était-ce utile?

La solution

Vous pouvez utiliser le middleware possibilité d'utiliser le connect-history-api-fallback intergiciel.Une fois que vous avez installé et requis la solution de secours, vous l'ajoutez comme ceci :

gulp.task('connect', function() {
  connect.server({
    root: __dirname,
    livereload: true,

    middleware: function(connect, opt) {
      return [ historyApiFallback ];
    }

  });
});

Autres conseils

Alternativement, vous pouvez utiliser gulp-connect propre option appelée fallback pour ça:

gulp.task('connect', function() {
  connect.server({
    root: 'path/',
    livereload: true,
    fallback: 'path/index.html'
  });
});

Pas besoin d'un autre forfait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top