S3网站托管角度

时间:2015-11-13 11:56:19

标签: angularjs amazon-s3

我试图在亚马逊S3上主持我的角色网站。

当我访问托管S3的网站的端点时,index.html文件被下载而不是被提供,无法找出原因

这似乎只出现在我上传所有角度项目的时候,当我上传index.html文件时一切正常

这是我的index.html的元数据:

curl -I http://mybucket.s3-website-us-west-2.amazonaws.com/                                                                 
HTTP/1.1 200 OK
x-amz-id-2:
x-amz-request-id:
Date: Fri, 13 Nov 2015 11:32:50 GMT
Last-Modified: Fri, 13 Nov 2015 11:32:03 GMT
ETag: ""
Content-Type: binary/octet-stream
Content-Length: 4754
Server: AmazonS3

我的水桶:

http://alpha.akt.io.s3-website-us-west-2.amazonaws.com/

和我的存储桶政策:

{
"Version": "2012-10-17",
"Id": "Policy1447414200659",
"Statement": [
    {
        "Sid": "Stmt1447414198383",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::alpha.akt.io/*"
    }
]
}

编辑1:

看起来内容类型是问题,我将其切换为text / html并且可以正常工作

但是他不想加载javascript和css,我检查了这个文件的内容类型,把application / javascript和text / css放到它上面似乎无法正常工作

2 个答案:

答案 0 :(得分:0)

我使用c3md作为我的自动部署过程的一部分,这里的命令如何看起来像

/usr/local/bin/s3cmd --access_key=[amazon key] --secret_key=[amazon secret] --acl-grant=read_acp:Everyone --no-mime-magic sync -r -P public/pull-requests/* s3://[your bucket name]/

使用--no-mime-magic

解决了上传的文件类型问题

您也可能会发现使用此策略使html5路由工作很有用,它还允许您在同一个存储桶的子文件夹中拥有多个角度应用,并随意使用不同的子域。 S3 Static Website Hosting Route All Paths to Index.html

答案 1 :(得分:0)

在S3存储桶中,启用公共读/写(您仍需要密钥才能部署到S3)

接下来,按照步骤here获取访问密钥和安全密钥。

然后使用新的访问密钥和安全密钥进行尝试:

$ aws configure(可能需要$ pip install awscli

接下来,进行生产构建并将其部署到AWS:

$ ng build --prod

$ aws s3 cp ./dist/REPO_NAME s3://BUCKET_NAME --recursive --acl public-read

这是假设您正在使用存储桶托管网站(将index.html用于索引文档)。