从图像样式重建图像


58

我在Drupal 7中具有图像样式。我将多个图像附加到节点上,并基于此样式显示图像。然后,我更改了此图像样式的效果,但是现有的图像没有用新的图像样式效果重新创建。它们显示具有旧图像样式的效果。

如果我附加新图像,它们将使用新效果。删除现有图像并重新上传会导致该图像使用旧效果。

手册(我认为是错误的)指出,仅保存图像样式会导致重建:http : //drupal.org/documentation/modules/image

我已经清除了缓存。

如何强制重建?


1
在“图像样式”页面上时,您是否实际上单击了“ 更新样式”按钮?我只是做了一些测试,并验证了当您单击它时,文件目录中所有生成的文件都将被删除。
Juampy NR 2012年

手册正确。更改图像样式(例如,通过添加,编辑或删除效果)会刷新图像样式。删除衍生产品时,可能是您的浏览器(或两者之间的另一个)缓存或权限问题。
fietserwin 2014年

我使用自定义drush命令重新生成图像gist.github.com/typhonius/8599853
apostnikov

Answers:



15

要通过UI在Drupal 7中刷新图像样式名称,请尝试以下contrib模块:

http://drupal.org/project/imagestyleflush

它为您提供了每个图像样式名称的刷新选项。它还具有一个选项,可以一次刷新所有图像样式名称。

启用该模块后,请在管理界面中转到此处刷新特定的图像样式:

admin/config/media/image-styles

9

这是图像样式的错误。如果要编辑图像样式并编辑已经存在的效果,则更新时不会刷新图像。但是,如果删除该效果(我不是要删除图像样式-删除特定图像样式内的效果)并创建一个新的图像,则图像将在更新时刷新。


函数image_effect_save()确实会调用image_style_flush(),因此这不是错误。
fietserwin 2014年

1
仅仅因为某些东西被调用并不意味着它不是错误。功能不应该存在。那就是错误的定义……
Kirkland 2015年

3

还有另一种更简单的方法。它比更新更像是替代品,但效果很好。您可以在旧样式的基础上创建一种新的图像样式,但是可以使用新功能(图像动作)。然后删除旧样式;在删除确认页面上,您会找到一个具有可用图像样式的下拉列表,可用于替换旧样式。我认为这是标准的图像样式替换功能。


3

从admin / config / media / image-styles编辑所需的样式。

单击底部的“更新样式”按钮,这将刷新样式文件夹中所有现有的已生成图像并创建新图像。


1

如果您有一个自定义模板并且想为图像字段设置样式:

 $style='full_content_width';
 $path=$node->my_img_field['und']['0']['uri'];
 $style_url = image_style_url($style, $path);
  print "<img src=".file_create_url($style_url)." >";

0

如果您正在使用Drupal Console(让我们面对现实,为什么不呢?)则可以使用:

drupal image:styles:flush image_style

要么

drupal image:styles:flush image_style

文档化:https ://docs.drupalconsole.com/en/commands/image-styles-flush.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.