Определение статического каталога в app.yaml вызывает сбой приложения
У меня странный вопрос по GAE standard
(Бег node
), точнее с моим app.yaml
ниже.
runtime: nodejs8
# Environment variables
env_variables:
GOOGLE_CLOUD_PROJECT: '...'
# Static directories and files
handlers:
- url: /static
static_dir: public
Без handlers
отчасти все работает как прелесть: мое приложение развернуто и работает. Обратите внимание, что size
4,8 МБ (версия 1-0-43
).
Однако с handlers
часть, мое приложение больше не работает: 4xx
ошибка и приложение size
324 КБ (версия 1-0-43
).
Единственная цель handlers
часть состоит в том, чтобы определить directory
обслуживать статические активы (CSS, JS, изображения...).
Любая подсказка? Благодарю.
2 ответа
Когда вы добавляете static_dir
определение обработчика всего содержимого вашего public
Подкаталог больше не (по умолчанию) загружается вместе с кодом вашего приложения (скорее всего, это объясняет разницу в размерах приложения). Вместо этого он загружается в другое место, чтобы обслуживаться непосредственно инфраструктурой GAE, см. Как обслуживать статические файлы в AppEngine Standard и nodejs
Похоже, что вашему приложению могут понадобиться некоторые из этих файлов. В таком случае самым простым решением было бы добавить application_readable
отметьте статическое определение, в результате чего этот каталог будет загружен как в статическом расположении контента, так и вместе с кодом вашего приложения, см. GAE: file_get_contents() и статические файлы.
Для ускорения развертываний можно также попытаться разделить статический контент на 2: одна часть, не нужная для кода вашего приложения, развернутая без application_readable
(таким образом, не загружается вместе с кодом вашего приложения, разворачивается быстрее) и один с флагом. Если это не так уж много проблем.
Не могли бы вы попробовать изменить static_dir с "public" на "static". Потому что url и static_dir обычно расположены в одном месте. Пожалуйста, попробуйте и дайте мне знать. Ура!
# Static directories and files
handlers:
- url: /static
static_dir: static