私はガクガクするのが初めてです。AWS パブリッシュを行うために gulp タスクを使用しています。公開する前に、すべての html ファイルの名前を拡張子なしで変更したい (つまり、拡張子を削除したい)。
次に、コンテンツ タイプを HTML ファイルの「text/html」に強制するために、2 つの異なるヘッダーを使用してコンテンツを公開します。
- ファイルが html の場合 (既に html 拡張子を削除しています) 、コンテンツ タイプが「text/html」として記述されているhtmlHeadersを使用します。
- ELSE は、コンテンツ タイプが使用されていない 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())
);
})