Некоторое время назад Google выпустил отличный Web Starter Kit, и мне просто интересно, есть ли у кого-нибудь использовал его в сочетании с AppEngine и / или Jinja2? Я не совсем уверен, как лучше всего использовать Web Starter Kit в AppEngine.
Я предполагаю, что одной из возможностей было бы разработать базовый шаблон макета и таблицы стилей в соответствии с процесс сборки Web Starter Kit. После завершения базового макета файлы html и css можно скопировать в проект AppEngine в соответствующие (статические) папки. Оттуда можно было работать с отдельными шаблонами Jinja2, расширяющими базовый шаблон. Единственная проблема заключается в том, что изменения как в CSS, так и в изображениях и в базовом шаблоне всегда нужно копировать в их каталоги Jinja2 / AppEngine.
Есть ли у кого-нибудь идеи по поводу эффективной работы с AppEngine, Jinja2 и Web Starter Kit?
Через несколько минут и экспериментов я создал папку html_frontend
в корневом каталоге. В этой папке я храню как app
(содержит исходные файлы html), так и dist
(содержит минимизированные файлы). Пока я разрабатываю в app
, я связываю статические файлы и шаблоны с каталогом app
. Также в моем управлении версиями я проверяю только app
, поскольку он содержит исходные файлы, которые можно использовать для вычисления всей структуры файлов и папок в dist
. Я еще не уверен, как предотвратить загрузку / развертывание AppEngine как app
, так и dist
.
Тогда app.yaml
будет выглядеть следующим образом:
- url: /styles
static_dir: html_frontend/dist/styles
- url: /fonts
static_dir: html_frontend/dist/fonts
Вот как я в конечном итоге заставил это работать: https://stackoverflow.com/a/24892700/3628578
2 ответа
Немного поигравшись, я нашел один способ интеграции Web Starter Kit в проект Python AppEngine и Jinja2. Я уверен, что это не идеальный способ сделать это, но, похоже, он работает достаточно хорошо. Вот краткое описание того, как я это сделал.
Установите и настройте все пакеты и программы, как описано здесь: https://developers.google.com/web/fundamentals/tools/index ? hl = ru
Скопируйте все файлы в папку шаблона в проекте AppEngine, например
html_frontend
.Отрегулируйте
app.yaml
, чтобы все файлы могли правильно обслуживаться веб-сервером.Во-первых, обработчики должны быть как-то расширены (если вы копировали в каталог, отличный от
html_frontend
, не забудьте изменить пути):- url: /fonts static_dir: html_frontend/dist/fonts - url: /images static_dir: html_frontend/dist/images - url: /scripts static_dir: html_frontend/dist/scripts - url: /styles static_dir: html_frontend/dist/styles
Затем следует «пропустить» определенные файлы и папки, т.е. запретить их загрузку в AppEngine. Для этого просто добавьте это в конец вашего
app.yaml
:skip_files: - ^html_frontend/app - ^html_frontend/node_modules - ^html_frontend/.sass-cache
Пока мы корректируем файлы конфигурации, добавьте следующие строки в свой
.hgignore
, чтобы предотвратить Mercurial от фиксации слишком большого количества файлов (или если вы используете другую систему контроля версий, вы должны узнать, как игнорировать файлы и папки там):html_frontend/.sass-cache html_frontend/node_modules html_frontend/dist
Создавайте файлы HTML всегда в пределах
html_frontend/app
. Оттуда вы можете создавать новые шаблоны Jinja2, которые, например, расширяют базовый шаблон. Изменения в CSS можно внести путем редактирования файлов SASS (хранящихся вstyles/components
) или файлаmain.css
. Но всегда помните: всегда редактируйте файлы в пределахhtml_frontend/app
.Скомпилируйте изменения: откройте окно терминала в
html_frontend
и запустите командуgulp
, как описано в документации Web Starter Kit. Вы заметите, что будет создана папка с именемdist
, содержащая все Файлы HTML, CSS и JS, но в свернутом виде.Чтобы Python и Jinja2 могли найти шаблоны, вы настраиваете правильный путь:
TEMPLATE_PATH = "html_frontend/dist"
Следуйте руководству по стилю Web Starter Kit, чтобы создать самую красивую веб-страницу.
Радоваться, веселиться!
Я использую git и appengine push для развертывания. В репозитории git вы можете использовать .gitignore
Пример: https://code.google.com/p/webapp- улучшено / source / browse / .gitignore
Похожие вопросы
Новые вопросы
google-app-engine
Google App Engine - это технология облачных вычислений для размещения веб-приложений в управляемых Google центрах обработки данных. Google App Engine - это платформа как услуга (PaaS), предлагающая Java, Python, Go, Node.js и PHP в стандартной среде. Среда выполнения для нескольких других языков, а также настраиваемые среды выполнения на основе докера поддерживаются в его гибкой среде.