【问题标题】:Installing and running LiipImagineBundle in symfony 2.1在 symfony 2.1 中安装和运行 LiipImagineBundle
【发布时间】:2014-07-01 19:38:19
【问题描述】:

这是我遵循的步骤:

  1. 在我的 composer.json 中添加了以下内容:

    "require": {
         "imagine/Imagine": ">=0.2.8",
         "liip/imagine-bundle": "*@dev",
         ....
         }
    
  2. 在命令行运行以下命令:

    composer update
    Installing imagine/imagine (v0.4.0)
    Installing liip/imagine-bundle (dev-master f7d5e4d)
    
  3. composer 更新后,vendor 文件夹中的目录结构如下所示:

  1. 然后更新 vendor/composer/autoload_namespaces.php

     'Imagine'   => $vendorDir .'/imagine/Imagine/lib/',
     'Liip\\ImagineBundle'=>$vendorDir . '/liip/imagine-bundle/',
    
  2. 注册捆绑包:

    new Liip\ImagineBundle\LiipImagineBundle(),
    
  3. 路由:

    # app/config/routing.yml
    _imagine:
    resource: .
    type:     imagine
    
  4. config.yml

      # app/config/config.yml
      liip_imagine:
      filter_sets:
         my_thumb:
            quality: 75
            filters:
               thumbnail: { size: [120, 90], mode: outbound }
    
  5. 添加到树枝模板文件中:

    <img src="{{ asset('bundles/acmedemo/images/1.jpg') | imagine_filter('my_thumb') }}" />
    
  6. 打开 localhost/symfony/web/app_dev.php/demo/hello/test

没有生成缩略图。查看源代码时,我发现了这一行:

  <img src="/symfony/web/app_dev.php/media/cache/my_thumb/symfony/web/bundles/acmedemo/images/1.jpg">

我错过了什么?有人可以帮我解决这个问题吗?我在 windows xp 上使用默认设置的 xampp 1.8

【问题讨论】:

  • +1 安装说明!

标签: symfony symfony-2.1 liipimaginebundle


【解决方案1】:

当我更换时

 <img src="{{ asset('bundles/acmedemo/images/1.jpg') | imagine_filter('my_thumb') }}" />

 <img src="{{ 'bundles/acmedemo/images/1.jpg' | imagine_filter('my_thumb') }}" />

我得到了缩略图。我删除了 twig 的asset() 助手,它可以工作,但不知道它是如何工作的。

【讨论】:

  • 您好,我也在使用 xampp,我已经完成了与您相同的所有步骤,但图像仍未生成。您是否必须创建媒体/缓存目录?没有创建目录,所以我制作了它们,仍然没有图像。会不会是权限问题?
  • 不,您不必手动创建媒体文件夹,除非您没有写权限或创建目录权限。如果您在 Windows 上,这应该不是问题,但在 linux 上,需要写入权限。阅读主题配置下的文档github.com/liip/LiipImagineBundle
  • 我需要将 liip/imaginebundle 和imagine/imagine 版本更改为您composer.json 中的版本并更新以使其正常工作,谢谢。
  • 非常感谢!我很生气试图让它为我工作,结果我只需要不使用asset()函数。
【解决方案2】:

您可能会这样做:&lt;img src="{{ (asset('bundles/acmedemo/images/1.jpg')) | imagine_filter('my_thumb') }}" /&gt;,因为过滤器过滤了完整的图像路径,而不仅仅是asset() 包含的内容,这意味着您还可以包含“asset()”

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2012-08-10
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多