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

Symfony中无法显示PostgreSQL数据库存储的上传图片求助

问题排查与解决步骤

1. 修正Asset路径

你的Twig模板里的asset路径存在错误,Symfony的asset()函数默认以项目根目录下的public文件夹为基准,不需要额外添加./public前缀。修改模板中的img标签:

<img src="{{ asset('uploads/draws/' ~ draw.post) }}" />

2. 验证文件存在性与路径匹配

  • 确认图片文件确实存在于项目的public/uploads/draws/目录下
  • 核对数据库中draw.post字段存储的文件名(包括大小写、后缀)是否与实际文件名完全一致,避免因拼写错误导致路径无效

3. 检查文件权限

确保Web服务器(如Nginx、Apache)对public/uploads/draws/目录及其下文件有读取权限。在Linux系统中可执行以下命令调整权限:

chmod -R 755 public/uploads/draws/
chown -R www-data:www-data public/uploads/draws/

4. 优化控制器代码(更规范写法)

控制器无需直接注入Environment,使用Symfony自带的render()方法即可:

#[Route('/publication', name: 'publication')]
public function temp(DrawRepository $drawRepository)
{
    $draws = $drawRepository->findAll();
    return $this->render('draw/show.html.twig', [
        'draws' => $draws
    ]);
}

5. 清除Symfony缓存

如果修改后问题依旧,清除缓存确保模板和路由生效:

# 开发环境
php bin/console cache:clear

# 生产环境
php bin/console cache:clear --env=prod

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:55:25