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

Symfony+Docker+Nginx部署时.js和.css文件404无法加载

问题解决:Symfony+Docker+Nginx下Webpack Encore静态文件404

问题根源

你的Nginx容器没有挂载项目的public目录。虽然PHP-FPM的app容器挂载了整个项目目录,能正常处理index.php请求,但静态文件(JS/CSS)是由Nginx直接返回的,Nginx容器内没有这些文件,因此返回404。

修复步骤

修改docker-compose.prod.yml,给web服务添加public目录的挂载:

services:
  # nginx
  web: 
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      # 添加这一行,将本地public目录挂载到Nginx容器对应路径
      - ./public:/var/www/html/public
  app:
    build: 
      dockerfile: ./php/Dockerfile
    volumes:
      - /var/www/html/vendor
      - .:/var/www/html

验证操作

  1. 停止并重启容器:
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml up -d --build
  1. 刷新页面,静态文件即可正常加载。

额外检查(可选)

  • 确认Webpack Encore的构建输出路径为public/build(你的目录结构已符合要求)
  • 确认Nginx配置中的root指向/var/www/html/public(你的配置已正确设置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:47:21