Я размещаю статический сайт в облачном хранилище Google, созданный mkdocs
. Однако ошибка, с которой я столкнулся, не должна быть связана с этой библиотекой.
У меня настроены разрешения, и я могу просматривать сайт по адресу
https://storage.googleapis.com/<bucketname>/<folder>/index.html
Это нормально, но он не может открыть этот URL:
https://storage.googleapis.com/<bucketname>/<folder>/
Он не распознает, что должен захватить файл index.html
.
Это не такая большая проблема для индексной страницы (я мог бы просто указать пользователям на эту страницу), но это огромная проблема для всех других ссылок на сайте. Есть подпапка, которая создается с такой структурой:
site/planning
├── week1
│ └── index.html
├── week2
│ └── index.html
├── week3
│ └── index.html
└── week4
└── index.html
документы хранилища Google проливают свет на то, что может происходить. Но даже после применения их рекомендаций это не работает.
> gsutil web set -m index.html gs://<bucketname>/
Setting website configuration on gs://<bucketname>/...
Итак, я ищу решение. Мои мысли:
index.html
.Буду признателен за любую оказанную помощь.
Что касается GCS, это поведение объясняется в документы:
Website configurations are only used to interpret requests directed to CNAME aliases of c.storage.googleapis.com. (that is, requests where the hostname is a custom domain). For example, only requests to www.example.com show the index page.
Thus, API behavior for requests to Cloud Storage domains, such as storage.googleapis.com/www.example.com, is preserved. For example, you can continue to list objects in the www.example.com bucket as you would for any other bucket. In the case of the www.example.com bucket, the object listing you receive includes 404.html and index.html.
В основном это означает отсутствие перенаправлений или особого поведения при доступе к объектам через адрес API, поскольку это может привести к несогласованности API.
Определенно, проблема в GCS заключается в том, что вы не используете собственный домен.
Что касается mkdocs, похоже, что use_directory_urls:false
поможет.