Как собрать и установить образы и шрифты управляемого пакета bower в Elastic Beanstalk
Итак, у меня есть приложение Flask (основанное на отличном начальном приложении по адресу https://github.com/sloria/cookiecutter-flask), которое я пытаюсь настроить для развертывания на эластичном бобовом стебле. Приложение использует bower
менеджер пакетов для установки библиотек javascript и зависимостей.
Проблема: я правильно настроил свой контейнер npm
а также bower
(используя образец из https://gist.github.com/growingdever/8eb2ae8e5793b9c1cd09) и связанный с ним .css
а также .js
все ресурсы доступны для моего приложения (с помощью Flask-Assets), но связанные файлы изображений и шрифтов все еще находятся в своих каталогах пакетов.
Мое предлагаемое решение: мне нужно собрать их все и переместить в app/static/images
а также app/static/fonts
для пакетов, чтобы найти их. Кто-нибудь решил эту проблему раньше?
1 ответ
Так что простое решение - лучшее. Использование символических ссылок для размещения файлов в нужном месте работает.
Альтернатива будет работать container_commands
скопировать файлы из bower
пакеты работают. В приведенном ниже фрагменте вы можете заменить слово app
с каталогом / именем вашего приложения. я сказал bower
установить пакеты в app/static/libs
,
container_commands:
04_project_bower_install:
command: 'bower --allow-root install'
leader-only: 'false'
05_move_fonts:
command: 'mkdir -p app/static/fonts;
export DIRS=`find app/static/libs -name fonts -type d -print `;
export FILES=`find $DIRS \( -name \*.ttf -o -name \*.woff -o -name \*.woff2 -o -name \*.eot -o -name \*.svg \) -print`;
echo "copying fonts $FILES";
cp -fu $FILES app/static/fonts'
leader-only: 'false'
06_move_images:
command: 'mkdir -p app/static/images;
export DIRS=`find app/static/libs -name images -type d -print `;
export FILES=`find $DIRS \( -name "*.jpg" -or -name "*.png" -or -name "*.gif" -or -name "*.svg" \) -print -maxdepth 1 -type f`;
echo "copying image $FILES";
cp -fu $FILES app/static/images'
leader-only: 'false'
Возможно, было бы легче написать небольшой asset_setup.sh
и запустить его вместо встраивания команд копирования в .ebextensions
конфигурационные файлы.