#google-app-engine #google-cloud-platform
# #google-app-engine #google-облачная платформа
Вопрос:
Я пытаюсь использовать app.yaml в Python 3.8 для стандарта Google app Engine.
Мой app.yaml выглядит так;
handlers:
- url: /static
static_dir: static
- url: /.*
script: auto
Затем я могу получить доступ ко всем файлам в каталоге с именем «static».
Если я затем изменю app.yaml на;
runtime: python38
handlers:
- url: /staticX
static_dir: staticX
- url: /.*
script: auto
Если я затем попытаюсь получить доступ к любым файлам в «staticX», я получаю ошибку 404.
Однако я все еще могу получить доступ к файлам в «статическом». Даже жесткое обновление получает 200.
Изменение app.yaml не имеет никакого эффекта.
Комментарии:
1. Попробуйте другой браузер и посмотрите, произойдет ли тот же результат. У вас есть файлы
staticX
?2. Пробовал другой браузер, та же проблема. коды 200 и 404 регистрируются. Эта проблема на локальном компьютере с Windows. Если я отредактирую main.py файл, я получаю сообщение «Обнаружено изменение… перезагрузка», при редактировании app.yaml такого сообщения не появляется
3. что вы подразумеваете под «изменением app.yaml»? вы успешно повторно развертываете приложение?
4. Все это находится на сервере разработки. Если я разверну (в appspot) второй app.yaml (staticX), я смогу получить доступ к обоим каталогам static и staticX. Это странно
5. Какой у вас тип масштабирования? Используете ли вы разделение трафика? Есть ли у вас управление кэшем / CDN?
Ответ №1:
Похоже, это вопрос кэширования. Согласно документации Google, статические обработчики в Google App Engine кэшируются, и, если вы не зададите значение default_expiration
, они по-прежнему будут доступны по умолчанию через 10 минут.
Я провел тот же тест на своей стороне, и действительно, после перераспределения static_dir
они все еще доступны примерно для 10 млн. Я заметил, что если я начинаю развертывать и повторно развертывать все сначала, 10-20 раз, иногда кажется, что время превышает 10 метров. Однако, наконец, когда я проверяю через несколько часов, все изменения были доступны.
Комментарии:
1. Я добавил: default_expiration: «0d 1m» По-прежнему возникают те же проблемы, что и после многих часов. Время для новой установки Windows 10 на ноутбуке и посмотреть, сохраняется ли эта проблема. Спасибо за попытку
2. Нет никакой связи между проблемой и вашим локальным компьютером. Приложение развернуто в облаке, и вы должны иметь возможность делать это с любого компьютера. Я не могу воспроизвести эту проблему, но если вы уверены, что проблема все еще сохраняется, попробуйте вызвать средство отслеживания проблем, как здесь cloud.google.com/appengine /… , это может быть что-то, связанное только с вашей учетной записью