2016-08-25 4 views
2

私たちは、圧縮され圧縮されたjsとcssをs3にtravisでデプロイしようとしています。 Gulpはmain.bundle.js.gzというファイルを作成しますが、これはs3に正しくアップロードされていますが、main.bundle.jsに404のサイトが表示されます。S3でTravisを使用したgzip圧縮アセット?

トラビスは、 'content-encoding'以外のオプションはあまりないようです。この仕事をするために世話をする必要があるものは何ですか? htmlのソースは.js.gzではなく.cssと.jsのままですか?

https://docs.travis-ci.com/user/deployment/s3/#Setting-Content-Encoding-header

答えて

2

私はちょうどこの上で自分自身を作業時間の束を費やし、そして最終的に解決策を考え出しました。それはかなりシンプルですが、インターネット上に古い情報がたくさんあるので、もっと混乱しているようです。

  • ビルドステップを構築するが、がそれらを圧縮しないトラヴィスの間に私のサイトのファイルを縮小化:ここで

    は私のために働いていたものです。私の場合、これはscriptのステップでnpm run buildを実行しているだけです。

  • Travis S3デプロイメントプラグインを使用して、縮小したファイルをS3バケットにアップロードします。
  • S3バケットの前にCloudFrontディストリビューションを配置します(compression turned on)。
  • Accept-Encoding: gzipでリクエストするクライアントはすべて、gzippedバージョンを取得します。

これは、基本的にCloudFrontにファイルの圧縮の問題を処理させることです。うまくいく!

ここに私の.travis.ymlの関連する部分だ:

script: npm run build 
deploy: 
    provider: s3 
    access_key_id: <id> 
    bucket: s3-bucket 
    skip_cleanup: true 
    local_dir: staging