docker - 如何让 Flask 为 Alpine 上的静态文件提供正确的内容类型?

标签 docker flask alpine-linux

我在基于 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/

相关文章:

Windows 10 专业版 - Docker 容器系统区域设置

python - 从多个 uWSGI worker 查询 MySQL 返回不匹配的行

php - 在 Docker Compose 中将 PHP-FPM 与 Nginx 连接

docker - Alpine 3.18 Docker 镜像在使用 & 运行后台命令后不遵守 `sleep` shell 命令

在 Docker Alpine 中编译 NSS 模块 - fatal error : nss. h:没有这样的文件或目录

java - Docker如何链接两个容器

docker - Windows 10上的Docker机器错误 “Could not find matching IP for MAC address”

docker - 为什么从 docker 文件构建会占用所有磁盘空间?

python - jsonschema.exceptions - 未知类型 'str' 用于具有架构 : 的验证器

python - FastCGI、Lighttpd 和 Flask