我试图在亚马逊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放到它上面似乎无法正常工作
答案 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用于索引文档)。