我已经在Linux计算机上设置了一个LiipImagineBundle配置(xubuntu 14.10):
路由.yml
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"
配置.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') }}">
所有来源图片都在网络/上传路径下这工作正常,图像缩略图在网络/媒体/缓存/dashboard_thumb/上传/ 下生成
我的源文件存储在 U 盘下,我使用 server:run 命令打开服务器(所以在 127.0.0.1:8000 下)
但是最近,我将服务器放在另一台计算机(linux mint 17)下,然后不再生成图像缓存。
当我查看生成的 HTML 源时,图像的文件路径是:
http://127.0.0.1:8000/media/cache/resolve/dashboard_thumb/uploads/myimage.png
所以我不知道为什么路径中有"决心"
其他事情,如果我启动命令:
liip:imagine:cache:resolve uploads/myimage.png
路径和图像web/media/cache/dashboard_thumb/uploads/myimage.png创建得很好
为什么这不能自动工作?
谢谢。
似乎是设置权限的问题。基本上,CLI(和部署)和 Web 服务器的系统操作用户必须位于同一组中。
查看文档以了解 Symfony 应用程序配置和设置
PS:您正在寻找的命令是chown,但只是一个解决方法,我建议您修复操作用户层。
希望这个帮助
。所以我不知道为什么路径中有"决心"
如果您没有图像的缓存,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 处理
因此,您看到的不是图像路径,而是路由。控制器生成缓存,您对此映像的第二个请求将为您提供映像的实际路径。
有一个问题,如果您需要将图像附加到邮件,则必须在附加此图像之前解决图像。
此外,如果不再生成缓存,则问题可能出在您的 Web 服务器配置中。想象一下,你的Nginx决定web/media/cache/*是静态内容,所以,路由web/media/cache/solve不起作用。