Wie kann man gulp-connect anweisen, index.html unabhängig von der URL zu öffnen?

StackOverflow https://stackoverflow.com//questions/23013353

  •  21-12-2019
  •  | 
  •  

Frage

Ich habe folgende Schluckaufgabe:

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

und die folgenden Angular-Routen:

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

Wenn ich besuche / Alles funktioniert einwandfrei (das Dashboard erscheint).

Aber zu Besuch /advertiser führt zu „404 – Cannot GET /advertiser“.

Meine Haupt-Angular-Datei ist index.html, die ordnungsgemäß geöffnet ist /, aber nicht für /advertiser.

Wie könnte ich Gulp sagen, er solle öffnen? index.html unabhängig von der URL?

War es hilfreich?

Lösung

Du kannst den ... benutzen middleware Option zu verwenden Die connect-history-api-fallback Middleware.Sobald Sie das Fallback installiert und benötigt haben, fügen Sie es wie folgt hinzu:

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

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

  });
});

Andere Tipps

Alternativ können Sie verwenden gulp-connect eigene Option aufgerufen fallback dafür:

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

Es ist kein weiteres Paket erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top