Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 用Travis在S3上压缩资产?_Amazon S3_Deployment_Travis Ci - Fatal编程技术网

Amazon s3 用Travis在S3上压缩资产?

Amazon s3 用Travis在S3上压缩资产?,amazon-s3,deployment,travis-ci,Amazon S3,Deployment,Travis Ci,我们正在尝试使用travis将缩小和压缩的js和css部署到s3。Gulp创建了一个文件main.bundle.js.gz,该文件已正确上传到s3,但该站点在main.bundle.js上显示了一个404 Travis似乎除了“内容编码”之外没有太多选择。还有什么我们需要注意的吗?html中的源代码仍然是.css和.js,而不是.js.gz 我自己花了很多时间研究这个问题,最后找到了一个解决方案。这很简单,但是互联网上有很多旧信息,这让它看起来更混乱 以下是对我有效的方法: 在Travis构建

我们正在尝试使用travis将缩小和压缩的js和css部署到s3。Gulp创建了一个文件
main.bundle.js.gz
,该文件已正确上传到s3,但该站点在main.bundle.js上显示了一个404

Travis似乎除了“内容编码”之外没有太多选择。还有什么我们需要注意的吗?html中的源代码仍然是.css和.js,而不是.js.gz


我自己花了很多时间研究这个问题,最后找到了一个解决方案。这很简单,但是互联网上有很多旧信息,这让它看起来更混乱

以下是对我有效的方法:

  • 在Travis构建步骤中构建并缩小我的站点文件,但不要压缩它们。在我的例子中,这只是在
    script
    步骤中运行
    npm run build
  • 使用Travis S3部署插件将缩小的文件上载到我的S3存储桶
  • 将CloudFront配线架放置在S3存储桶的前面,使用
  • 任何使用
    Accept Encoding:gzip
    请求的客户端都将获得gzip版本
这基本上是让CloudFront为您处理压缩文件的问题。它工作得很好

以下是我的
.travis.yml
的相关部分:

script: npm run build
deploy:
  provider: s3
  access_key_id: <id>
  bucket: s3-bucket
  skip_cleanup: true
  local_dir: staging
脚本:npm运行构建
部署:
提供者:s3
访问密钥id:
桶:s3桶
跳过清理:true
本地主任:登台