我有一个项目,我将上传的图像保存在 src/My/Bundle/Resources/uploads/images/full 中,并使用 twig 过滤器 imagine_filter
动态创建缩略图。
在我的本地计算机上它可以完美地工作,在我的服务器上也是如此,但仅在开发环境下。当我删除以前创建的缩略图(仅保留 full 目录)、清除产品缓存并加载任何网页时,不会创建图像,它们的 url 始终保留在 media/cache,记录器给我request.ERROR
:
"No route found for "GET /uploads/images/avatar/354026c94b773b77ca945b4a6323e15c84102f6b.jpg"" at /<path>/app/cache/prod/classes.php line 1964 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for \"GET /uploads/images/avatar/354026c94b773b77ca945b4a6323e15c84102f6b.jpg\" at /<path>/app/cache/prod/classes.php:1964, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException: at /<path>/app/cache/prod/appProdUrlMatcher.php:1816
一些附加信息:
- 我已将 src/My/Bundle/Resources/uploads 符号链接(symbolic link)到 web/uploads
- 我的配置是(
thumbnail_min
是自定义过滤器):liip_想象: 装载机: 默认: 文件系统: data_root: %kernel.root_dir%/../web/uploads/images/full 解析器: 默认: 网络路径: web_root: %kernel.root_dir%/../web 缓存前缀:/上传/图像 缓存:默认 过滤器集: 头像: 质量:90 过滤器: thumbnail_min: { 大小: 50, 模式: 插入 } .... 满的: 质量:100
- 权限始终至少为 rw 组(这是服务器所需的权限)
最佳答案
刚刚在我的本地计算机上遇到了类似的问题,但仍在开发环境中。
对我来说,我缺少默认媒体/缓存文件夹的组可写权限,该文件夹在 liip:imagine:cache:remove 和页面重新加载后保持为空。因此图像链接到空文件夹。
为了解决这个问题,我首先确保组设置为 Apache 的 _www (mac)/www-data (linux),例如
- sudo chgrp -R www-data web/media/cache
然后确保该文件夹设置为可读、可写和可执行,例如
- sudo chmod -R g+rwx 网络/媒体/缓存
希望这有帮助...
关于Symfony、Liip Imagine bundle 无法在产品环境中的服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24381994/