我不知道为什么Drupal停止生成缩略图。所以,我在这样的文件上出错:
/sites/default/files/styles/choices/public/a1531172504.jpg?itok=Wn-VWDKd
尽管可以在以下位置找到完整图像:
/sites/default/files/a1531172504.jpg
我正在研究Nginx,Drupal 7
答案 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
的原因是:
我为nginx.conf
提出的规则将图像请求重定向到drupal
,并在重新启动Web服务器后解决了问题:
docker-compose restart webserver
答案 2 :(得分:0)
我的解决方法是禁用并重新启用clean-url。 .../admin/config/search/clean-urls"
。