Symfony、Liip Imagine bundle 无法在产品环境中的服务器上运行

标签 symfony production-environment liipimaginebundle

我有一个项目,我将上传的图像保存在 src/My/Bundle/Resources/uploads/images/full 中,并使用 twig 过滤器 imagine_filter 动态创建缩略图。

在我的本地计算机上它可以完美地工作,在我的服务器上也是如此,但仅在开发环境下。当我删除以前创建的缩略图(仅保留 full 目录)、清除产品缓存并加载任何网页时,不会创建图像,它们的 url 始终保留在 media/cache,记录器给我request.ERROR:

"No route found for "GET /uploads/images/avatar/354026c94b773b77ca945b4a6323e15c84102f6b.jpg"" at /<path>/app/cache/prod/classes.php line 1964 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for \"GET /uploads/images/avatar/354026c94b773b77ca945b4a6323e15c84102f6b.jpg\" at /<path>/app/cache/prod/classes.php:1964, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException:  at /<path>/app/cache/prod/appProdUrlMatcher.php:1816

一些附加信息:

  • 我已将 src/My/Bundle/Resources/uploads 符号链接(symbolic link)到 web/uploads
  • 我的配置是(thumbnail_min 是自定义过滤器): liip_想象: 装载机: 默认: 文件系统: data_root: %kernel.root_dir%/../web/uploads/images/full 解析器: 默认: 网络路径: web_root: %kernel.root_dir%/../web 缓存前缀:/上传/图像 缓存:默认 过滤器集: 头像: 质量:90 过滤器: thumbnail_min: { 大小: 50, 模式: 插入 } .... 满的: 质量:100
  • 权限始终至少为 rw 组(这是服务器所需的权限)

最佳答案

刚刚在我的本地计算机上遇到了类似的问题,但仍在开发环境中。

对我来说,我缺少默认媒体/缓存文件夹的组可写权限,该文件夹在 liip:imagine:cache:remove 和页面重新加载后保持为空。因此图像链接到空文件夹。

为了解决这个问题,我首先确保组设置为 Apache 的 _www (mac)/www-data (linux),例如

  • sudo chgrp -R www-data web/media/cache

然后确保该文件夹设置为可读、可写和可执行,例如

  • sudo chmod -R g+rwx 网络/媒体/缓存

希望这有帮助...

关于Symfony、Liip Imagine bundle 无法在产品环境中的服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24381994/

相关文章:

php - Symfony 2.6 FR3DLdapBundle。由于系统原因,无法处理身份验证请求

python - 旋转自拍图像在开发中工作,但在生产中保存到 S3 存储桶时不起作用?

symfony - 使用生产系统中的探查器数据的最佳做法是什么?

php - Symfony liipimaginebundle : set request context scheme to https

symfony - LiipImagineBundle 和 BinaryFileResponse

php - 使用 liipImagineBundle 更新/删除记录时删除/更新缓存图像

forms - 将自定义选项传递给 symfony2 表单

php - Symfony2 从命令类获取根目录路径

angularjs - 过期的 JWT token - 如何刷新 token

reactjs - 生产中的 Express-React 应用程序出现空白屏幕 : Uncaught SyntaxError: Unexpected token < | index. html 不提供其他文件