SSIを使用するコーディング案件が続いたのでメモです。
まずはGulpプロジェクトにconnect-ssiをインストールします。
$ npm install connect-ssi –save-dev
gulp.jsに読み込みます。
var connectSSI = require ('connect-ssi');
以前の最近使っているgulp.jsを晒してみるで使ったgulp.jpに差し込むとこんな感じです。
// ディレクトリ
var dir = {
src: 'src/',
dest: 'dist/'
}
〜略〜
// ssi用ファイルを置いたフォルダの中身をコピーして出力
gulp.task('inc', (done) => {
gulp.src([dir.src + 'include/**/*'])
.pipe(gulp.dest(dir.dest + 'include'))
done()
})
// Browser Sync
gulp.task('browser-sync', function(done) {
browserSync.init({
server: { //ローカルサーバ
baseDir: dir.dest,
middleware: [
connectSSI({
baseDir: __dirname + '/' + dir.dest,
ext: '.html'
})
],
index: "index.html",
}
});
done();
});
〜略〜
// gulpコマンドで最初に動作
gulp.task('default',
gulp.series(
'clean',
gulp.parallel(
'ejs',
'sass',
'js',
'img',
'inc', // ←追加
'watch',
'browser-sync'
)
)
);
baseDirの__dirname
以下は「/フォルダ名」な感じになるようにします。
これでGulpを起動するとSSIが使えます。
HTMLやEJSの中でインクルードすると動きます。
<!--#include virtual="/include/hoge.html" -->
【gulp】BrowserSyncでSSIを使う方法についてメモメモ – バシャログ
browser-syncでSSIを使う – cly7796.net