2016-07-26 25 views
1

Ich habe eine Verzeichnisstruktur wie folgt ...Wie synchronisiert man alle HTML-Dateien mit gulp browsersync?

--app 
-css 
    custom.css 
-sass 
    custom.scss 
-pages 
    about.html 
    home.html 
--gulpfile.js 
--node_modules 
--package.json 

meine schluck Datei

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var browserSync = require('browser-sync').create(); 

gulp.task('sass', function() { 
    return gulp.src('app/sass/*.scss') 
     .pipe(sass()) 
     .pipe(gulp.dest('app/css/')) 
     .pipe(browserSync.reload({ 
      stream: true 
     })) 
}); 

gulp.task('watch', ['browserSync', 'sass'], function() { 
    gulp.watch('app/sass/*.scss', ['sass']); 
    gulp.watch('app/pages/*.html', browserSync.reload); 
    gulp.watch('app/js/**/*.js', browserSync.reload); 
}) 

gulp.task('browserSync', function() { 
    browserSync.init({   
     server: { 
      baseDir: "app", 
      index: "pages/home.html" 
     }, 
     }) 
}) 

ist, wenn ich die Uhr Task ausgeführt i auf localhost umgeleitet bin: 3000, die meine home.html Seite öffnet . und meine Browser-Synchronisierung funktioniert gut.

aber wenn ich rechts auf die Datei about.html klicke und sie im Browser im Visual Studio anschaue, funktioniert die Browser-Synchronisierung nicht in der Seite about.html. und diese Seite öffnet sich als localhost: 56060/app/pages/about.html im Browser.

Wie kann ich die Browsersynchronisierung in allen HTML-Dateien im Seitenverzeichnis funktionieren lassen?

oder was sollte die URL-Adresse des Browsers sein, um auf die Datei about.html zuzugreifen?

+0

Sie sind mit zwei verschiedenen Ports hier. Versuchen Sie, den Browsersync-Port auch auf 56060 zu setzen. – herrh

+0

i haben versucht, den Port zu verwenden 56060 gulp.task ('browserSync', function() { browserSync.init ({ Port zu ändern: 56060, Server: { baseDir: "app" Index: "pages/home.html" }, }) }) ... aber danach, wenn ich Uhr Task ausgeführt i http umgeleitet bin: // localhost: 56061 –

+0

haben Sie versucht proxy: ‚localhost: 56060 'statt Port? – herrh

Antwort

0

Ihr Code sieht gut aus, versuchen Sie Adresse in Browser „Chrome“ Vergangenheit url, natürlich, wenn in Ihrer CMD Konsole Befehl schluck sehen aktiviert ist

http://localhost:3000/pages/about.html 

Denken Sie daran, wenn Sie browserSync in Ihrem Fall aktiviert es gestartet wird in Ordner App, dies ist Ihr localhost: 3000 Server, etwas wie localhost: 56060 ist es nicht Ihre Seite.

In Ihren HTML-Dateien vergessen Sie nicht in CSS Link hinzufügen "/" vor CSS-Ordner.

<link rel="stylesheet" href="/css/custom.css"> 

Wenn Sie noch ausgeben haben, versuchen Sie diesen Code in schluck Aufgabe Uhr:

gulp.task('watch', ['browserSync', 'sass'], function() { 
    gulp.watch('app/sass/*.scss', ['sass']); 
    // gulp.watch('app/pages/*.html', browserSync.reload); // Comment this line 
    gulp.watch("app/**/*.html").on('change', browserSync.reload); // Try this line 
    gulp.watch('app/js/**/*.js', browserSync.reload); 
}) 

gulp.task('browserSync', function() { 
    browserSync.init({   
     server: { 
      baseDir: "app", 
      index: "pages/home.html" 
     }, 
     }) 
}) 

Grüße :)

+0

ja so kann ich auf die about.html im Browser zugreifen, aber es ist nicht mit Browser-Sync verbunden, d. H., Wenn ich eine Änderung mache, wird es nicht direkt in der About-Seite widergespiegelt. Ich muss diese Seite jedes Mal aktualisieren, um die Änderungen zu sehen, während browserSync für home.html gut zu funktionieren scheint. –