0

因此,我有一个 Flask 应用程序(基于https://github.com/sloria/cookiecutter-flask上的出色入门应用程序),我正在尝试设置它以部署到弹性 beanstalk。该应用程序使用bower包管理器来安装 JavaScript 库和依赖项。

问题:我已经设置了我的容器以正确安装npm和(使用来自https://gist.github.com/growthdever/8eb2ae8e5793b9c1cd09bower的示例)并且相关的和资产都可用于我的应用程序(使用Flask-Assets),但是相关的图像和字体文件仍在其包目录中。.css.js

我提出的解决方案:我需要将它们全部收集起来并将它们移动到app/static/images包裹app/static/fonts中以找到它们。以前有没有人解决过这个问题?

4

1 回答 1

0

所以简单的解决方案是最好的。使用符号链接将文件放在正确的位置是可行的。

另一种方法是运行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

于 2015-07-16T16:39:11.440 回答