我在基于 python:2.7-alpine
基础镜像的 Docker 容器中运行 Flask webapp,从 Debian 基础镜像切换过来。
Flask 从 /static
目录提供的所有图像都使用通用内容类型 application/octet-stream
而不是预期的特定内容类型,因此浏览器不能正确显示图像。
如何解决这个问题?
最佳答案
原因是 Alpine 基础镜像没有附带任何 MIME 类型信息。查看下面示例 Dockerfile 中的 apk add
命令。它会安装 mailcap
包,该包只增加了 68 KB 并包含一个 /etc/mime.types
文件。
FROM python:2.7-alpine
# install /etc/mime.types
RUN apk update && \
apk add mailcap && \
rm /var/cache/apk/*
...
现在提供的 PNG、JPEG 等应该具有预期的内容类型 header 。
关于docker - 如何让 Flask 为 Alpine 上的静态文件提供正确的内容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38033046/