angularjs2 SPA - как изменить задачу gulp, чтобы предотвратить ошибку cannot get / page

проблема: я получаю ошибки «Невозможно GET / heroes» или «Не удается GET / dashboard» при попытке достичь http://localhost:9000/dashboard или http://localhost:9000/heroes

В настоящее время у меня есть задача gulp для настройки веб-страницы:

var http = require('http');<br/>
var connect = require('connect');<br/>
var serveStatic = require('serve-static');<br/>
var open = require('open');<br/>
var port = 9000, app;<br/>

gulp.watch(PATHS.src, ['ts2js']);

app = connect().use(serveStatic(__dirname));

http.createServer(app).listen(port, function () {
    open('http://localhost:' + port);
});

Вопрос: что мне следует изменить в моей задаче gulp, чтобы предотвратить обход файла index.html?
Я пробовал добавить connect-history-api-fallback, но не знаю, как правильно настроить.

Я пробовал следующее, но тогда это вообще не позволило мне изменить подстраницу:

var history = require('connect-history-api-fallback');
app = connect().use(serveStatic(__dirname));
app.use(history);

Вот моя конфигурация маршрутизации angularjs2 (если это поможет):

import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from 'angular2/router';

import {DashboardComponent} from './dashboard.component';
import {HeroesComponent} from './heroes.component';

@Component({
    selector: 'start-app',
    template: `
    <h1>{{title}}</h1>
    <nav>
      <a [routerLink]="['Dashboard']">Dashboard</a>
      <a [routerLink]="['Heroes']">Heroes</a>
    </nav>
    <router-outlet></router-outlet>
  `,
    styleUrls: ['./src/app/app.component.css'],
    directives: [ROUTER_DIRECTIVES],
    providers: [/*HeroService,*/ ROUTER_PROVIDERS]
})
@RouteConfig([
    { path: '/dashboard', name: 'Dashboard', component: DashboardComponent, useAsDefault: true },
    { path: '/heroes', name: 'Heroes', component: HeroesComponent }
])
export class App//Component
 {
    public title = 'Tour of Heroes';
}

заранее спасибо!

по запросу вот весь файл gulp (надеюсь, это вам поможет):

var gulp = require('gulp');

var PATHS = {
src: 'src/**/*.ts'
};

gulp.task('clean', function (done) {
var del = require('del');
del(['dist'], done);
});

// copy dependencies
gulp.task('copy:libs', ['clean'], function() {
gulp.src([
        'src/app/*.html', 'src/app/*.css'
    ])
    .pipe(gulp.dest('dist/app'));

gulp.src([
        'src/home/*.html', 'src/home/*.css'
    ])
    .pipe(gulp.dest('dist/home'));

gulp.src([
        'src/login/*.html', 'src/login/*.css'
    ])
    .pipe(gulp.dest('dist/login'));

gulp.src([
        'src/signup/*.html', 'src/signup/*.css'
    ])
    .pipe(gulp.dest('dist/signup'));
});

gulp.task('ts2js',['copy:libs'], //['copy:libs'],
function () {
    var typescript = require('gulp-typescript');
    var tscConfig = require('./tsconfig.json');

    var tsResult = gulp
        .src(PATHS.src)
        .pipe(typescript(tscConfig.compilerOptions));

    return tsResult.js.pipe(gulp.dest('dist'));
});

gulp.task('play', ['ts2js'], function () {
var http = require('http');
var connect = require('connect');
var serveStatic = require('serve-static');
var open = require('open');

var port = 9000, app;

gulp.watch(PATHS.src, ['ts2js']);

app = connect().use(serveStatic(__dirname));
http.createServer(app).listen(port, function () {
    open('http://localhost:' + port);
});

});
gulp.task('default', ['play']);

person timmy_stapler    schedule 24.02.2016    source источник
comment
Не возражаете поделиться файлом gulp?   -  person taigi100    schedule 25.02.2016


Ответы (1)


вот ответ, как настроить его в этой задаче gulp:

var historyApiFallback = require('connect-history-api-fallback');
var bs = require('browser-sync').create();
bs.init({
    server: {baseDir: "./", middleware: [ historyApiFallback() ]}
});
person timmy_stapler    schedule 25.02.2016