Как собрать и установить образы и шрифты управляемого пакета 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 конфигурационные файлы.

Другие вопросы по тегам