J'ai un style d'image dans Drupal 7. J'ai attaché plusieurs images à des nœuds et affiche les images basées sur ce style. J'ai ensuite changé les effets sur ce style d'image mais les images existantes ne sont pas recréés avec les nouveaux effets de style d'image. Ils apparaissent avec les anciens effets de style d'image.
Si j'attache de nouvelles images, elles utilisent les nouveaux effets. La suppression d'une image existante et le téléchargement à nouveau obligent l'image à utiliser les anciens effets.
Le manuel (à tort, je suppose) déclare que le simple fait d'enregistrer un style d'image provoque une reconstruction: http://drupal.org/documentation/modules/image
J'ai effacé le cache.
Comment forcer une reconstruction?
Vider le cache, ne videra pas les styles d'image: http://drupal.org/node/997332
Vous pourriez:
rm -rf sites/default/files/styles
drush image-flush
Pour vider les noms de style d'image dans Drupal 7 via l'interface utilisateur, essayez ce module contrib:
http://drupal.org/project/imagestyleflush
Il vous donne une option de vidage pour chaque nom de style d'image. Il a également une option pour vider tous les noms de style d'image à la fois.
Une fois le module activé, dans l'interface d'administration, allez ici pour vider un style d'image particulier:
admin/config/media/image-styles
Il s'agit d'un bug avec les styles d'image. Si vous modifiez un style d'image et modifiez un effet déjà présent, les images ne seront pas vidées lors de la mise à jour. Cependant, si vous supprimez cet effet (je ne parle pas de supprimer le style d'image - supprimez l'effet dans le style d'image particulier) et en créez un nouveau, les images seront vidées lors de la mise à jour.
Il existe un autre moyen plus simple. C'est plus un remplacement qu'une mise à jour, mais cela fonctionne très bien. Vous pouvez créer un nouveau style d'image basé sur l'ancien, mais avec de nouvelles fonctionnalités (actions d'image) que vous souhaitez. Supprimez ensuite l'ancien style; sur la page de confirmation de la suppression, vous trouverez une liste déroulante avec les styles d'image disponibles, que vous pouvez utiliser pour remplacer l'ancien. Il s'agit d'une fonction de remplacement de style d'image standard, je suppose.
Modifiez le style souhaité dans admin/config/media/image-styles.
Cliquez sur le bouton 'Mettre à jour le style' en bas, qui videra toutes les images générées existantes dans le dossier de style et en créera de nouvelles.
si vous avez un modèle personnalisé et que vous souhaitez forcer le style pour un champ d'image:
$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)." >";
Si vous utilisez Drupal Console (et avouons-le, pourquoi pas?), Vous pouvez utiliser:
drupal image:styles:flush image_style
Ou
drupal image:styles:flush image_style
Documenation: https://docs.drupalconsole.com/en/commands/image-styles-flush.html