Некоторое время назад 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
m_____z 22 Июл 2014 в 14:34

2 ответа

Лучший ответ

Немного поигравшись, я нашел один способ интеграции Web Starter Kit в проект Python AppEngine и Jinja2. Я уверен, что это не идеальный способ сделать это, но, похоже, он работает достаточно хорошо. Вот краткое описание того, как я это сделал.

  1. Установите и настройте все пакеты и программы, как описано здесь: https://developers.google.com/web/fundamentals/tools/index ? hl = ru

  2. Скопируйте все файлы в папку шаблона в проекте AppEngine, например html_frontend.

  3. Отрегулируйте 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
    
  4. Пока мы корректируем файлы конфигурации, добавьте следующие строки в свой .hgignore, чтобы предотвратить Mercurial от фиксации слишком большого количества файлов (или если вы используете другую систему контроля версий, вы должны узнать, как игнорировать файлы и папки там):

    html_frontend/.sass-cache
    html_frontend/node_modules
    html_frontend/dist
    
  5. Создавайте файлы HTML всегда в пределах html_frontend/app. Оттуда вы можете создавать новые шаблоны Jinja2, которые, например, расширяют базовый шаблон. Изменения в CSS можно внести путем редактирования файлов SASS (хранящихся в styles/components) или файла main.css. Но всегда помните: всегда редактируйте файлы в пределах html_frontend/app.

  6. Скомпилируйте изменения: откройте окно терминала в html_frontend и запустите команду gulp, как описано в документации Web Starter Kit. Вы заметите, что будет создана папка с именем dist, содержащая все Файлы HTML, CSS и JS, но в свернутом виде.

  7. Чтобы Python и Jinja2 могли найти шаблоны, вы настраиваете правильный путь:

    TEMPLATE_PATH = "html_frontend/dist"
    
  8. Следуйте руководству по стилю Web Starter Kit, чтобы создать самую красивую веб-страницу.

  9. Радоваться, веселиться!

5
m_____z 31 Июл 2015 в 14:22
Хороший ответ. Мне нравится ваша структура каталогов; это меньше спама в корень.
 – 
Rowe Morehouse
26 Окт 2014 в 07:28

Я использую git и appengine push для развертывания. В репозитории git вы можете использовать .gitignore

Пример: https://code.google.com/p/webapp- улучшено / source / browse / .gitignore

0
voscausa 22 Июл 2014 в 17:26
Спасибо за это, это не совсем то, что я имел в виду. Меня больше интересовали лучшие практики использования Web Starter Kit в приложениях Python AppEngine и Jinja2. Но я думаю, что понял это сейчас. Я опубликую решение в ближайшее время.
 – 
m_____z
22 Июл 2014 в 20:10