我想在AWS上托管一个静态网站,为此我在我的计算机上构建我的项目。这是一个角度项目,我的dist /目录包含我需要上传的所有文件。我有一个根据我的注册主机名命名的特定存储桶。
我将路由53配置为将我的DNS名称链接到我的S3存储桶,相应地使用amazon教程。
我将我的S3配置为Web主机,ACL很好,权限和CORS访问权限以及重定向规则都可以摆脱“#/”。 不耐烦等待30分钟后,我连接到我的注册DNS名称,说'myexample.com',我可以看到我的网站,一切都很棒。
现在时光飞逝,我想改变一切。我删除了我的存储桶中的每个数据,并将其他网站文件放入其中。
问题出现了:当我转到'myexample.com'时,它被重定向到一个奇怪的网址:“pictureStatic /#/” 这很奇怪,但它实际上是我计算机上存储库的名称。它也是我在S3存储桶中的“重定向规则”配置中使用的名称,因为我以前的托管网站。所以我删除了重定向规则,但重定向仍然存在。 我的重定向规则在哪里: “HostName”:“PictureStatic” “协议”:“http” “ReplaceKeyPrefixWith”:“#/”
我想到了53号路线的问题,或者类似的东西,所以我从头开始做所有事情:
我将我的文件复制到另一个目录中的计算机上,并在任何地方删除任何“picurestatic”字样。 我建立了我的项目 我将构建的文件上载到其他测试存储区中,并将其配置为Web主机。我没有链接到route53区域,而是使用直接URL到桶:我的网站运行良好
我删除我的存储桶“myexample.com”根据我的注册名称命名(对于我的路由53配置是必需的)并从头开始创建它,与我的测试桶的配置完全相同,除了为我的配置权限桶。
CORS是:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>GET</ExposeHeader>
<ExposeHeader>PUT</ExposeHeader>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
ACL是:读取对象/权限对象上的所有人
权限是:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::myexample.com/*"
}
]
}
当我想要在没有route53的情况下直接访问我的存储桶时,通过: myexample.com.s3-website-MyRegion.amazonaws.com
即使我的其他测试版使用相同的操作正常工作,它仍然会将我重定向到我的旧“pictureStatic /#/”。
我不明白如何摆脱这种重定向。它注意到route53,因为我在测试中没有使用它,关键是我必须修复名为“myexample.com”的桶,否则我不再使用我的注册DNS名称了,因为route53迫使他们拥有一样的名字。
我尝试将我的存储桶“myexample.com”配置为重定向到我的测试存储区,但它没有改变任何内容。
有人知道这次重定向的原因吗?
答案 0 :(得分:0)
好的,我找到了问题的原因,这有点愚蠢。 当我在私人模式下使用我的浏览器时,不再有任何问题,因此我的浏览器上的本地缓存问题比我的应用程序上的问题更多。