0

私はガクガクするのが初めてです。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())
  );
})
4

1 に答える 1