无法访问Symfony的var目录中的上载

时间:2017-12-12 10:19:57

标签: symfony docker routes var

我正在尝试将文件上传到'var'目录(已成功)。但是当我想从'var'中取出这个文件时,我只能观察No route found for "GET /var/uploads/images/....

结构

 - app
 - bin
 - src
 - var
    - cache
    - logs
    - uploads
       - images
 - vendor
 - web

保存我正在使用的文件:'%kernel.project_dir%/var/uploads/images'

要获取档案的订单:'/var/uploads/images/' . $fileName; 我的错在哪里?

P.S。此外,我尝试在我的docker-compose文件中使用volume(我正在使用docker),如下所示:- ./data/cabinet/uploads/images:/data/www/cabinet/var/uploads/images 不幸的是,没有一个文件没有复制到此目录。怎么了?

谢谢!

1 个答案:

答案 0 :(得分:0)

由于文档根目录指向web目录,因此路径../var无法访问。将上传内容存储在web目录中,或在其中创建指向var/data/uploads的符号链接:

// since I don't know your path tree inside the container
// I assume whole application is installed inside /var/www/html
// and this is the default working directory
docker-compose exec YOUR_CONTAINER_NAME \
ln -rs /var/www/html/var/data web/var

请记住,如果您使用的是Apache webserver,则必须启用FollowSymLinks选项,但很可能是。

关于第二个问题,很可能你映射了一个无效的目录,我想这应该是:

// yet again I assume whole application is inside the /var/www/html
./data/cabinet/uploads/images:/var/www/html/data/cabinet/uploads/images

这是某种生产方式吗?如果不是,这只是一个正在进行的工作,那么您应该将整个本地目录映射为容器卷。这是它通常在开发模式下完成的方式,因此映射将是:

.:/var/www/html