1

我在 Linux 计算机(xubuntu 14.10)上设置了 LiipImagineBundle 配置:

路由.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') }}">

所有源图像都在web/uploads路径下这工作正常,图像缩略图在web/media/cache/dashboard_thumb/uploads/下生成

我的源文件存储在 U 盘下,我使用 server:run commande 启动服务器(所以在 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 都创建得很好

为什么这不能自动工作?

谢谢。

4

2 回答 2

1

似乎是关于设置权限的问题。基本上 CLI(和部署)的系统操作用户和 Web 服务器必须在同一个组中。

检查Symfony 应用程序配置和设置的文档

PS:您要查找的命令是 chown 但只是一种解决方法,我建议您修复操作用户层。

希望这有帮助

于 2015-01-31T14:27:15.560 回答
0

...所以我不知道为什么路径中有“解决”

如果您没有图像缓存,LiipImagineBundleimagine_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/resolve 只是不起作用。

于 2017-07-07T11:15:33.443 回答