Symfony2 LiipImagineBundle path cache probleme



我已经在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不起作用。

最新更新