我在linux计算机上设置了LiipImagineBundle配置(xubuntu 14.10):
的routing.yml
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"
config.yml
liip_imagine:
resolvers:
default:
web_path: ~
filter_sets:
cache: ~
dashboard_thumb:
quality: 75
filters:
thumbnail: { size: [60, 60], mode: outbound }
在我的树枝模板中:
<img src="{{ asset(company.logo.getPath) | imagine_filter('dashboard_thumb') }}">
所有来源图片都在网络/上传路径下 这工作正常,图像缩略图是在 web / media / cache / dashboard_thumb / uploads /
下生成的我的源文件存储在USB记忆棒下,我使用服务器来运行服务器:运行commande(所以在127.0.0.1:8000下)
但最近,我将服务器置于另一台计算机(linux mint 17)下,然后不再生成图像缓存。
当我查看生成的html源代码时,图像的文件路径为:
http://127.0.0.1:8000/media/cache/resolve/dashboard_thumb/uploads/myimage.png
所以我不知道为什么会有一个&#39;解决方案&#39;在路径
其他事情,如果我启动命令:
liip:imagine:cache:resolve uploads/myimage.png
路径和图片web / media / cache / dashboard_thumb / uploads / myimage.png创建得很好
为什么这不会自动起作用?
感谢。
答案 0 :(得分:1)
似乎有关设置权限的问题。基本上,CLI(和部署)和Web服务器的系统操作用户必须位于同一组中。
查看Symfony Application Configuration and Setup
的文档PS:您正在寻找的命令是chown,但只是一种解决方法,我建议您修复操作用户层。
希望这个帮助
答案 1 :(得分:0)
...所以我不知道为什么有一个&#39;决心&#39;在路径
如果您的图片没有缓存,LiipImagineBundle
(在您的情况下为imagine_filter
)会根据此规则生成路线
liip_imagine_filter:
path: /media/cache/resolve/{filter}/{path}
defaults:
_controller: '%liip_imagine.controller.filter_action%'
methods:
- GET
requirements:
filter: '[A-z0-9_-]*'
path: .+
,您的请求由ImagineController
https://github.com/liip/LiipImagineBundle/blob/1.0/Controller/ImagineController.php
所以,你看不到图像路径,而是路径。 Controller生成缓存,您对该图像的第二个请求将为您提供实际的图像路径。
如果您需要将图片附加到邮件消息,则会出现问题,您必须在附加图片之前解析图片。
此外,如果缓存不再生成,则问题可能在您的Web服务器配置中。想象一下,你的Nginx决定web / media / cache / *是静态内容,因此,web / media / cache / resolve路由不起作用。