Reconstruire des images à partir du style d'image

58

J'ai un style d'image dans Drupal 7. J'ai attaché plusieurs images à des nœuds et les affiche en fonction de ce style. J'ai ensuite modifié les effets sur ce style d'image, mais les images existantes ne sont pas recréées avec les nouveaux effets de style d'image. Ils montrent avec les anciens effets de style d'image.

Si je joins de nouvelles images, ils utilisent les nouveaux effets. La suppression d'une image existante et le ré-téléchargement permettent à l'image d'utiliser les anciens effets.

Le manuel (à tort, je suppose) indique que le simple fait de sauvegarder un style d'image provoque une reconstruction: http://drupal.org/documentation/modules/image

J'ai effacé le cache.

Comment puis-je forcer une reconstruction?

Justin
la source
1
Avez-vous réellement cliqué sur le bouton Mettre à jour le style alors que vous vous trouviez sur la page Style d'image? Je viens de faire quelques tests et de vérifier que lorsque vous cliquez dessus, tous les fichiers générés dans le répertoire des fichiers sont supprimés.
Juampy NR
Le manuel est correct. Changer un style d'image, par exemple en ajoutant, modifiant ou supprimant un effet, efface le style d'image. Cela peut être votre cache (ou un autre entre les deux) cache ou un problème de droits lorsque les dérivés sont supprimés.
Fietserwin
J'ai utilisé la commande personnalisée drush pour régénérer les images. Gist.github.com/typhonius/8599853
apostnikov

Réponses:

113

Effacer le cache, ne pas vider les styles d'image: http://drupal.org/node/997332

Vous pourriez:

  • les supprimer manuellement
  • utiliser image_style_flush
  • utilisez la ligne de commande: rm -rf sites/default/files/styles
  • utiliser drush: drush image-flush
ipwa
la source
9
drush image-flush style_name est une aubaine. :-)
Sean Robertson le
15

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 utilisateur d'administration, cliquez ici pour vider un style d'image particulier:

admin/config/media/image-styles
tyler.frankenstein
la source
9

C'est 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. Toutefois, si vous supprimez cet effet (je ne parle pas de la suppression du 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.

laskiyt
la source
La fonction image_effect_save () appelle image_style_flush (), ce n'est donc pas un bug.
Fietserwin
1
Ce n’est pas parce qu’on appelle quelque chose que ce n’est pas un bug. La fonctionnalité n'est pas présente quand elle devrait l'être. C'est la définition d'un insecte ...
Kirkland le
3

Il existe un autre moyen plus facile. C'est plus un remplacement qu'une mise à jour, mais cela fonctionne bien. Vous pouvez créer un nouveau style d'image basé sur l'ancien, mais avec les nouvelles fonctionnalités (actions d'image) de votre choix. Supprimez ensuite l'ancien style. Sur la page de confirmation de suppression, vous trouverez une liste déroulante avec les styles d'image disponibles, que vous pouvez utiliser pour remplacer l'ancien. Je suppose que ceci est une fonction standard de remplacement de style d'image.

WtheM
la source
3

Éditez le style que vous voulez depuis admin / config / media / image-styles.

Cliquez sur le bouton "Mettre à jour le style" en bas pour vider toutes les images générées existantes dans le dossier de styles et en créer de nouvelles.

Jeet
la source
1

Si vous avez un modèle personnalisé et voulez 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)." >";
Matoeil
la source