Drupal不会生成缩略图

时间:2018-07-09 22:12:49

标签: drupal drupal-7

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

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

尽管可以在以下位置找到完整图像:

/sites/default/files/a1531172504.jpg

我正在研究Nginx,Drupal 7

3 个答案:

答案 0 :(得分:2)

上次我已经回答了与图片衍生工具有关的问题,因此请在此处进行详细介绍。

1.Drupal核心不会在图片上传后创建图片衍生产品-事实。

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

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

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

也请检查您的.htaccess文件,该文件位于site / default / files / .htaccess文件(不是常规的.htaccess文件) 然后在那里检查文件文件夹的权限。

答案 1 :(得分:1)

对我来说,解决方案是将以下行添加到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,并在重新启动Web服务器后解决了问题:

docker-compose restart webserver

答案 2 :(得分:0)

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