如何告诉gulp-connect打开index.html而不管URL?

时间:2014-04-11 13:02:15

标签: angularjs gulp

我有以下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 - 无法获取/广告客户"。

我的主要Angular文件是index.html,已针对/正常打开,但不适用于/advertiser

如果无论网址如何,我怎么能告诉Gulp打开index.html

2 个答案:

答案 0 :(得分:46)

或者,您可以使用名为gulp-connect的{​​{1}}自己的选项:

fallback

无需其他包裹。

答案 1 :(得分:15)

您可以使用middleware选项使用the connect-history-api-fallback middleware。一旦安装并需要回退,就可以这样添加:

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

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

  });
});