1

我正在使用 LiipImageBundle 和 KNP Gaufrette 包来调整大小并从 s3 加载图像。以前一切正常,但突然停止工作。没有捆绑版本升级。

下面是我的配置,

liip_imagine:
    cache: aws_s3_images
    data_loader: stream.aws_s3_images
    filter_sets:
        large:
            quality: 75
            cache: aws_s3_images
            data_loader: stream.aws_s3_images
            filters:
                relative_resize: { widen: 140 }
        medium:
            quality: 75
            cache: aws_s3_images
            data_loader: stream.aws_s3_images
            filters:
                thumbnail: { size: [50, 50], mode: outbound }
        small:
            quality: 75
            cache: aws_s3_images
            data_loader: stream.aws_s3_images
            filters:
                thumbnail: { size: [25, 25], mode: outbound }

    loaders:
        stream.aws_s3_images:
            stream:
                wrapper: gaufrette://aws_s3_images_fs/

knp_gaufrette:
    adapters:
        aws_s3_images_adapter:
            aws_s3:
                service_id: 'st.aws_s3.client'
                bucket_name: %amazon.s3.bucket%
                options:
                    #directory: 'fos'
                    create: true

    filesystems:
        aws_s3_images_fs:
            adapter:    aws_s3_images_adapter

    stream_wrapper: ~

问题很奇怪,如果我在新选项卡中打开图像,它会重定向到 s3 图像 url 并显示图像。一旦它加载到新标签中,它就会开始正常显示。除非我打开它新的新标签,否则它不起作用。

它不是解决s3路径吗?可能是什么问题 ?我尝试删除所有缓存,我的 web 目录中没有媒体文件夹。

在日志中它显示 ImagineController:FilterAction 被调用。

在 html 源图像路径是

http://st.com/app_dev.php/media/cache/resolve/large/fos/user/ebc36103e6d1038791eb7eca2f4449db0780fdf41416235134.jpeg

现在,如果我在新选项卡/窗口中打开它,它将重定向到

[MY_S3_BUCKET_URL]/fos/user/large/ebc36103e6d1038791eb7eca2f4449db0780fdf41416235134.jpeg

并将在新窗口中显示图像。

现在,如果我再次刷新页面,图像源现在更改为

[MY_S3_BUCKET_URL]/fos/user/large/ebc36103e6d1038791eb7eca2f4449db0780fdf41416235134.jpeg

现在我可以看到加载的图像了吗?

为什么它突然开始发生。之前一切正常。

4

1 回答 1

0

经过 LiipImaginBundle 的所有代码 & 调试后,原来是由 FOSRestBundle 引起的内容类型问题

format_listener:
    rules:
        - { path: '^/', priorities: [ '*/*' ], fallback_format: html, prefer_extension: true }

将其更改为

format_listener:
    rules:
        - { path: '^/', priorities: [ 'html', '*/*' ], fallback_format: html, prefer_extension: true }

解决了这个问题。

于 2014-11-18T20:38:52.313 回答