Gulp AWS Publish. Как удалить расширение *.html, а затем добавить content-type в text/html?
Я новичок в глотке. Я использую задание gulp для публикации в AWS. Перед публикацией я хочу переименовать все HTML-файлы без расширения (то есть удалить расширения).
Затем опубликуйте контент с двумя разными заголовками, чтобы заставить тип контента 'text / html' для файлов HTML.
- Если файл html (который я уже удалил расширение html), тогда используйте htmlHeaders, где тип контента упоминается как 'text / html',
- В противном случае используйте normalHeaders, где не используется тип содержимого.
Так как я уже удалил это расширение файла.html, я не смог найти условие для публикации на основе какого-либо условия.
Приведенный ниже код удаляет расширение html, но не добавляет другие заголовки в зависимости от типа файла. Как передать файл publisher.publish (htmlHeaders) или publisher.publish (normalHeaders) в зависимости от типа файла?
gulp.task('aws-staging-main', function () {
var publisher = awspublish.create(
{
region: "us-east-1",
params: {
Bucket: "<my bucket>"
},
accessKeyId: "<my access key>",
secretAccessKey: "<my secret access key>"
}
);
var normalHeaders = {
"Cache-Control": "max-age=315360000, no-transform, public",
};
var htmlHeaders = {
"Cache-Control": "max-age=315360000, no-transform, public",
'Content-Type': 'text/html; charset=utf-8'
};
var cfSettings = {
distribution: '<my distribution>',
accessKeyId: "<my key>",
secretAccessKey: "<my secret key>",
wait: true,
originPath: '/dist',
}
return (
gulp.src(Paths.DIST_ALL)
.pipe(rename(function (path){
if( path.extname === '.html')
path.extname = "";
}))
.pipe(publisher.publish(normalHeaders));
.pipe(cloudfront(cfSettings))
.pipe(awspublish.reporter())
);
})
1 ответ
Чтобы это работало, я сделал два разных gulp.src для поиска HTML-файлов отдельно и других файлов отдельно, а затем объединил их с помощью "merge2", как показано ниже.
var StreamAllExclHtml=gulp.src([Paths.DIST_ALL,Paths.DIST_ALL_NOT_HTML])
.pipe(publisher.publish(normalHeaders));
var StreamHtml=gulp.src(Paths.DIST_HTML)
.pipe(rename(function (path) {
if (path.basename != "index") {
path.extname = "";
}
}))
.pipe(publisher.publish(htmlHeaders));
return(
merge(StreamAllExclHtml,StreamHtml)
.pipe(publisher.sync('',whitelist.whitelist))
.pipe(cloudfront(cfSettings))
.pipe(awspublish.reporter())
)