You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker部署Flask应用时静态资源加载失败该如何排查?

问题根因

你的静态资源加载失败是路径配置不匹配导致的:

  • Dockerfile中手动设置的STATIC_PATH /var/www/app/static和实际代码存放路径不一致:你在start.sh中通过-v $PWD:/app将本地项目挂载到了容器的/app目录,静态资源实际存放在/app/static路径下,nginx无法从你配置的错误路径读取资源。
  • Dockerfile仅复制了requirements.txt,没有将app.py、static、templates等项目文件同步到镜像的对应路径,就算不使用挂载也会找不到资源。

修复方案

你使用的tiangolo/uwsgi-nginx-flask镜像默认会自动识别/app目录下的静态资源,无需手动配置STATIC_URL和STATIC_PATH,按以下步骤调整即可:

  1. 修改Dockerfile,删除冗余的静态路径配置,补充项目文件复制指令,修改后内容如下:
FROM tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
RUN apk --update add bash nano
COPY ./requirements.txt /var/www/requirements.txt
RUN pip install -r /var/www/requirements.txt
# 复制全部项目文件到镜像默认的应用目录
COPY . /app
  1. 停止并删除之前运行的异常容器:
docker stop docker.test && docker rm docker.test
  1. 重新执行start.sh构建镜像并启动容器即可。

如果需要保留本地挂载调试,你当前start.sh中的挂载参数-v $PWD:/app已经和调整后的路径匹配,无需额外修改。


内容的提问来源于stack exchange,提问作者Jaguar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:36:04