如何使用亚马逊s3服务角2

use*_*r93 14 amazon-s3 angular

是否可以使用amazon s3来提供角度2 app而无需使用专用服务器.如果是这样怎么办?

coo*_*sse 13

是的,您可以将应用程序部署到AmazonS3,但不应直接从Amazon S3提供:S3是存储服务,而不是分发服务.这就是为什么您应该为S3存储桶创建CloudFront分配.

脚步:

  1. 建立你的应用程序npm run build --prod(小心包括--prod选项!)

  2. 为您的Amazon S3存储桶创建CloudFront分配并将您设置Default Root Objectindex.html

  3. 如果您使用url重写而不是哈希策略(您的路径看起来像http://yourwebsite/login并且没有http://yourwebsite/#/login为您的CloudFront分配创建自定义错误响应,具有以下内容:

    • HTTP错误代码:404

    • 错误缓存最小TTL(秒):0

    • 自定义错误响应:是的
    • 响应页面路径:/index.html
    • HTTP响应代码:200

将应用程序部署到CloudFront上的Invalidate index.html时,您还需要小心,否则旧版本将被缓存并将提供给客户端.

按照我的指南了解更多详情.

  • 这应该是公认的答案。它清楚地详细说明了添加重写规则的要求,以便所有请求都获得index.html的服务(S3不会这样做),并将S3区分为存储平台。 (2认同)

Yon*_*n B 8

有可能的.但是你应该使用webpack.

将应用程序配置为使用webpack后,您可以npm run build将处理后的文件作为静态网站上载到S3.

  • 此外,您需要确保为除index.html之外的网址(例如http://example.com/items)解决路由问题,因为这些网址需要重定向到index.html才能允许角度来路由它们 - 请参阅http://stackoverflow.com/questions/16267339/s3-static-website-hosting-route-all-paths-to-index-html (2认同)