コンテナー ディレクトリの「/app/static/fonts/」内に格納されている「font.ttf」などの静的ファイルを使用する Flask アプリケーションがあります。
開発用の Windows で Python を実行すると、アプリケーションは正しく機能し、ファイルを取得できます。ただし、Ubuntu Docker コンテナーに配置すると、Web ページと基本的な html が起動されますが、Web ページに付随する静的ファイルを提供することはできません。
エラー例:
GET http://192.168.1.200:5000/static/fonts/Pacifico-Regular.ttf net::ERR_ABORTED 404 (NOT FOUND)
フラスコ アプリケーションの次の起動パラメーターがあります。
app = Flask(__name__, static_url_path='', static_folder=os.path.abspath('/app/static/'))
静的ファイルを返せないのはなぜですか?
参照フォルダ構造:
app
├───static
│ ├───css
│ ├───fonts
│ ├───js
│ │ └───lib
│ └───media
└───templates
Dockerfile:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
RUN apt-get install -y unixodbc-dev
COPY . /app
WORKDIR /app
RUN pip install flask
RUN pip install pyodbc
ENTRYPOINT ["python"]
CMD ["app.py"]
ドッカー実行:
docker run -d -p 5000:5000 flask-app:latest
どうもありがとう