Обслуживание статических файлов с помощью App Engine Python 37 без каких-либо сценариев Python - PullRequest
0 голосов
/ 27 января 2019

С помощью App Engine Python27 (стандартная среда) можно было создать веб-приложение, которое обслуживает только статические ресурсы из app.yaml. Без написания скриптов на Python.

С Python37 (стандартное env) я вижу, что все еще возможно иметь static_dir в секции handlers app.yaml, но мне интересно, будет ли это работать так же. Потому что я не определяю какую-либо точку входа, я не устанавливаю веб-сервер. У меня есть только app.yaml на данный момент.

И первое, что блокирует меня на данный момент: если я это делаю, как мне локально запустить это приложение? (нет сценария Python, поэтому python main.py и dev_appserver.py не работают для Python37).

Спасибо за ваши ответы

1 Ответ

0 голосов
/ 27 января 2019

Да, конфигурации static_dir и static_file работают одинаково, их разделы в справочных документах app.yaml для 2.7 и 3.7 идентичны, за исключением ссылокдля 2.7-специфичной опции application_readable.

Поскольку обслуживание статического контента в GAE идентично (статический контент загружается и подается отдельно от кода приложения - эквивалентно, если хотите, подаче из CDN) на самом деле не имеет значения, используете ли вы среду выполнения 2.7 или версию 3.7 - вы на самом деле не выполняете никакого кода на Python, верно?

Так что одним из вариантов было бы просто использовать 2,7 вместо этого (добавив минимальный каркас приложения для поддержания времени выполнения, скажем, просто вернув 404 или перенаправив на одну из статических страниц - вы можете получить его с Quickstart ).Затем вы можете продолжить использовать сервер разработки 2.7 для локального выполнения.

Другой вариант - использовать 2.7 (как в варианте 1) только для локальной разработки, но переключиться обратно на 3.7 для развертывания (т.е. обновить app.yaml, удалите скелетный код приложения или обновите его до 3.7).Немного более утомительно и хрупко, но это можно сделать.

3-й вариант - попробовать обновленный сервер разработки, который имеет ограниченную поддержку 3.7, см. Python 3.7 Параметры локального сервера разработки для новыхобработчик приложений app .Предоставление статического контента может быть включено в эту ограниченную поддержку.Вы должны будете соответствовать его конкретным требованиям.Вам также понадобится 3.7-совместимое скелетное приложение, вы можете получить его из 3.7 Quickstart .

Наконец, вы также можете использовать какой-то другой инструмент локально во время разработки, если у вас есть(тот же совет, что и для локального запуска реального приложения ).Это может быть просто ваш браузер для статического контента :) Опять же, цель состоит в том, чтобы просто разработать статический контент, GAE будет обслуживать его таким же образом.В этом случае вам не понадобится скелетное приложение.

Примечание: я видел это в стандартном справочнике env app.yaml Node.js , не уверен, применимо ли это к python 3.7Также имейте в виду:

Чтобы использовать статические обработчики, по крайней мере один из ваших обработчиков должен содержать строку script: auto для успешного развертывания.

...