我有以下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
?
答案 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 ];
}
});
});