2016-08-02 127 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'));