2016-08-02 125 views
0

我正在使用Gulp,BrowserSync構建靜態網站,並且所有工作都很順利,直到我將更改推送到我的gh頁面分支,希望它會通過我創建的gh-pages網站正確呈現。我已經做了一些研究,並且我知道由於gh頁面的工作方式,我用於鏈接,圖像等的路徑將不得不包括根目錄...以及我已經做出的一些更改代碼將起作用,但最終會導致頁面在使用gulp在本地運行時工作。最重要的是,我遇到了通過jquery加載部分html頁面的問題,我相信這也與在gh頁面上託管的路徑錯誤有關。當我用gulp在本地運行它時,一切正常。如果我只是從終端打開index.html頁面,它可以正常工作,但是一旦我點擊一個鏈接,事情就會變得混亂。有誰知道一個徹底的教程,視頻,博客,或碰巧知道一個好方法來設置我的目錄,以確保它可以在本地以及當它被推到gh頁面?我已經包含了一張照片,顯示了我的目錄是如何設置的。 enter image description here使用Gulp構建靜態網站後部署到gh頁面的問題

我gulpfile看起來像這樣

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

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

    gulp.task('serve', function() { 
     browserSync.init({ 
     server: { 
      baseDir: './' 
     } 
     }); 

     gulp.watch('./scss/*.scss', ['styles']); 
     gulp.watch('./**/*.html').on('change', browserSync.reload); 
    }); 

    gulp.task('default', ['styles', 'serve']); 

下面是網站,因爲它是目前在GH-網頁:https://andrewdpohl.github.io/STHR/

+0

如果你知道你的本地開發的基本路徑,而你知道GH頁面的基本路徑,你不能讓一個單獨的構建設置可以替換代碼中的基本路徑? – Randy

+0

不完全確定我會怎麼做。你的意思是運行一個吞噬任務,基本上把我所有的文件,並把它們放在自己的文件夾,這將被髮布到gh頁? –

回答

0

採用.src()被記錄在預先感謝您乙烯基-sg github回購: https://github.com/wearefractal/vinyl-fs

.dest()中保存時,base屬性用於確定文件名。

我認爲你需要設置當前的工作目錄

gulp.src('./**/*.js', {cwd: '../src/main/'}) 
    .pipe(gulp.dest('../target/dist'));