【问题标题】:Drupal doesn't generate thumbnailsDrupal 不生成缩略图
【发布时间】:2020-09-28 16:45:19
【问题描述】:

我不知道为什么 Drupal 停止生成缩略图。所以,我收到这样的文件错误:

/sites/default/files/styles/choices/public/a1531172504.jpg?itok=Wn-VWDKd

虽然完整的图片位于:

/sites/default/files/a1531172504.jpg

我正在开发 Nginx,Drupal 7

【问题讨论】:

  • 可能是文件权限问题。检查您的文件系统,尤其是 /sites/default/files/

标签: drupal drupal-7


【解决方案1】:

上次我回答了与图像衍生品相关的问题,我有一些缺点,所以让我们在这里彻底了解一下。

1.Drupal 核心不会在图像上传时创建图像衍生 - 事实。

2.Thumbnail 图像(源自原始图像)是根据 HTTP 请求物理创建的,例如。如果您访问使用图像的列表(当您访问带有缩略图的列表时,衍生产品是通过 HTTP 请求动态创建的)

3.要改变这种行为并在通过 CCK 字段上传图像后立即获取衍生图像,您必须使用模块 Imageinfo Cache https://www.drupal.org/project/imageinfo_cache

使用上面的此信息表,请重新检查您的网站(转到显示缩略图的列表,然后检查您的缩略图文件夹)如果图像仍然丢失,请提供更多详细信息,例如:您使用的是 CCK 字段还是自定义字段领域,您是否以编程方式创建衍生产品?这里需要一些代码sn-ps来解决你的问题。

另外请检查您位于 sites/default/files/.htaccess 中的 .htaccess(不是一般的 .htaccess) 并在那里检查文件夹的权限。

【讨论】:

  • 我已经安装了 imageinfo_cache 模块,它解决了这个问题。问题是因为(如您所说)Drupal 仅根据请求生成缩略图。因此,当请求图像时,如果它给出 404 错误,Drupal 将生成它。此时,Nginx 应该将 404 错误传递给 Drupal,但它没有这样做。我尝试了很多方法来做到这一点,但我失败了。因此,您所说的最简单的解决方案是添加此模块。谢谢
  • 很高兴能帮上忙。干杯。
【解决方案2】:

我的解决方案是将此行添加到 nginx.conf 文件中:

location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
    expires max;
    log_not_found off;
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    # not working with Drupal rewrite module: rewrite ^/?(.*?)/?$  /index.php?q=$1&$args;
    rewrite ^/?(.*?)/?$  /index.php/$1&$args;
}

我的环境是:

 - docker-compose with nginx (nginx:1.17.4-alpine), drupal   
   (drupal:9.0.6-fpm-alpine) and mysql (mysql:8.0)
 - drupal (9.0.6),    nginx/1.17.4, PHP 7.4.10, MySql 8.0.21

服务器回复了404 error,因为:

  • 图像样式在 drupal 收到请求时生成。
  • Nginx 收到对不在文件系统中的图像的请求;然后返回 404,而不是将请求重定向到 drupal。

我为nginx.conf提出的将图片请求重定向到drupal的规则并在重启网络服务器后解决问题:

docker-compose restart webserver

【讨论】:

    【解决方案3】:

    我的解决方法是禁用并重新启用 clean-url。 .../admin/config/search/clean-urls".

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2013-05-14
      • 2016-06-03
      • 2015-01-07
      • 2012-09-01
      • 1970-01-01
      相关资源
      最近更新 更多