これを書いている時点で、AWS EB の構成と格闘するのに何時間も費やした後、私は静的ファイルを期待どおりに動作させることをあきらめ、Flask アプリの作成を次のように更新しました。
app = Flask(__name__, static_url_path='/s')
これにより、URL が次のようにレンダリングされ、コードとテンプレートで/s/scripts/my-script.js
常に使用url_for('static', ...)
されるため、AWS の外部でもすべてが機能し続けました。
2013 年 9 月 30 日の更新staticFiles
: AWS EB の Python コンテナーで設定が完全に無視されることはほぼ保証できます。
上で提案した変更には、すべての静的ファイル リクエストを Flask (より正確には WSGI) 経由でルーティングするという望ましくない欠点があります。ただし、これを修正するのはそれほど難しくありません。
プロジェクト ルートにapp-httpd.confという名前の Apache conig ファイルを作成します。
Alias /s /opt/python/current/app/static
<Directory /opt/python/current/app/static>
Order allow,deny
Allow from all
</Directory>
この構成は、静的ファイル用に選択したのと同じ接頭辞である で始まる URL のすべての要求を引き継いで、アプリの静的フォルダー/s
からファイルを提供するように Apache に指示します。
このファイルを.ebextensions/custom-apache.configに作成します。
container_commands:
add_apache_conf:
command: "cp app-httpd.conf /etc/httpd/conf.d"
このファイルは、アプリの展開中に使用され、新しい .config ファイルを、Apache が参照するすべての .config ファイルを読み込むように構成されているディレクトリにコピーします。