Я развернул приложение VueJS с S3 и CloudFront с использованием Route53. Казалось, все работало нормально. Я могу зайти на сайт по номеру https://my-domain.com
и перейти к различным маршрутам, которые я настроил с помощью маршрутизатора Vue. Однако, когда я пытаюсь получить доступ к https://my-domain.com/about
напрямую, я вижу следующую ошибку:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<link type="text/css" id="dark-mode" rel="stylesheet" href=""/>
<style type="text/css" id="dark-mode-custom-style"/>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>about</Key>
<RequestId>8371CJFJ48JM68239</RequestId>
<HostId>
/fQp7V6SuN0eDPgZpTroQrrxmfVQJTjXtroij56OIJONB56048OIaZDa4snkjc/Ygr/oZu0=
</HostId>
</Error>
Вот настройки для моих ресурсов AWS:
S3 Bucket
Свойства
Все свойства отключены (у меня не установлен статический хостинг, так как я использую https)
Разрешения (общедоступные)
Настройки общего доступа
Все четыре параметра имеют значение false
Список контроля доступа
Публичный доступ: каждый может читать и перечислять объекты
Политика Bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucketname.com/*"
}
]
}
Конфигурация CORS
Здесь ничего не установлено
Route53
У меня есть домен с размещенной зоной с 5 записями:
mydomain.com : запись; Указывает на распределение CloudFront
По умолчанию NS и SOA записи, которые я не изменил
*. Mydomain.com : запись; Также укажите на распределение CloudFront для поддоменов веб-интерфейса
api.mydomain.com : запись; Указывает на ALB для службы API бэкэнда
CloudFront
Вот General
настройки для моего дистрибутива CloudFront:
Distribution ID: 12356OIJSGSU9I
ARN: arn:aws:cloudfront::123456789012:distribution/ABCD1234
Log Prefix: -
Delivery Method: Web
Cookie Logging: Off
Distribution Status: Deployed
Comment: -
Price Class: Use All Edge Locations (Best Performance)
AWS WAF Web ACL: -
State: Enabled
Alternate Domain Names (CNAMEs):
*.mydomain.com
mydomain.com
SSL Certificate: mydomain.com (abc1234-1234-1234-1234-abcd1234)
Domain Name: abcd1234.cloudfront.net
Custom SSL Client Support: Only Clients that Support Server Name Indication (SNI)
Security Policy: TLSv1.1_2016
Supported HTTP Versions: HTTP/2, HTTP/1.1, HTTP/1.0
IPv6: Enabled
Default Root Object: index.html
Last Modified: 2019-02-19 11:45 UTC-5
Log Bucket: -
У меня нет настроенных исходных групп. Я не уверен, что мне это нужно, но похоже, что это может помочь решить эту проблему.
Я также слышал об AWS Amplify (https://console.aws.amazon.com/amplify/).
Какие настройки можно изменить, чтобы я мог направлять запросы без полномочий root на мой домен в приложение VueJS?