Odbuduj obrazy ze stylu obrazu

58

Mam styl obrazu w Drupal 7. Dołączyłem kilka obrazów do węzłów i wyświetlam obrazy w oparciu o ten styl. Następnie zmieniłem efekty dla tego stylu obrazu, ale istniejące obrazy nie są odtwarzane z nowymi efektami stylu obrazu. Pokazują z efektami starego stylu obrazu.

Jeśli dołączam nowe obrazy, używają nowych efektów. Usunięcie istniejącego obrazu i ponowne przesłanie powoduje, że obraz używa starych efektów.

Podręcznik (niepoprawnie zakładam) stwierdza, że ​​samo zapisanie stylu obrazu powoduje przebudowę: http://drupal.org/documentation/modules/image

Wyczyściłem pamięć podręczną.

Jak wymusić przebudowę?

Justin
źródło
1
Czy faktycznie kliknąłeś przycisk Aktualizuj styl , będąc na stronie Styl obrazu? Właśnie wykonałem kilka testów i zweryfikowałem, że po kliknięciu wszystkie wygenerowane pliki w katalogu plików zostają usunięte.
Juampy NR 12.01.12
Instrukcja jest poprawna. Zmiana stylu obrazu, np. Poprzez dodanie, edycję lub usunięcie efektu, spłukuje styl obrazu. Może to być pamięć podręczna przeglądarki (lub inna pamięć pośrednia) lub problem z prawami podczas usuwania pochodnych.
fietserwin
Użyłem niestandardowego polecenia drush, aby zregenerować obrazy gist.github.com/typhonius/8599853
apostnikov

Odpowiedzi:

113

Czyszczenie pamięci podręcznej nie powoduje opróżnienia stylów obrazów: http://drupal.org/node/997332

Mógłbyś:

  • usuń je ręcznie
  • użyj image_style_flush
  • użyj wiersza poleceń: rm -rf sites/default/files/styles
  • użyj drush: drush image-flush
ipwa
źródło
9
drush image-flush style_name jest darem niebios. :-)
Sean Robertson
15

Aby opróżnić nazwy stylów obrazów w Drupal 7 za pomocą interfejsu użytkownika, wypróbuj ten moduł contrib:

http://drupal.org/project/imagestyleflush

Daje opcję spłukiwania dla każdej nazwy stylu obrazu. Ma również opcję spłukania wszystkich nazw stylów obrazu jednocześnie.

Po włączeniu modułu w interfejsie administratora przejdź tutaj, aby opróżnić określony styl obrazu:

admin/config/media/image-styles
tyler.frankenstein
źródło
9

Jest to błąd związany ze stylami obrazu. Jeśli edytujesz styl obrazu i edytujesz już obecny efekt, obrazy nie zostaną usunięte podczas aktualizacji. Jeśli jednak usuniesz ten efekt (nie mówię o usunięciu stylu obrazu - usuń efekt w obrębie określonego stylu obrazu) i utworzysz nowy, obrazy zostaną usunięte podczas aktualizacji.

laskiyt
źródło
Funkcja image_effect_save () wywołuje image_style_flush (), więc nie jest to błąd.
fietserwin
1
To, że coś się nazywa, nie oznacza, że ​​to nie błąd. Funkcjonalność nie jest obecna, kiedy powinna być. Taka jest definicja błędu ...
Kirkland,
3

Jest inny, łatwiejszy sposób. To bardziej zamiennik niż aktualizacja, ale działa dobrze. Możesz utworzyć nowy styl obrazu na podstawie starego, ale z nowymi funkcjami (akcjami obrazu), które chcesz. Następnie usuń stary styl; na stronie z potwierdzeniem usunięcia znajdziesz listę rozwijaną z dostępnymi stylami obrazów, których możesz użyć, aby zastąpić stary. Zakładam, że jest to standardowa funkcja zastępowania stylu obrazu.

WtheM
źródło
3

Edytuj żądany styl z admin / config / media / image-styles.

Kliknij przycisk „Aktualizuj styl” na dole, który opróżni wszystkie wygenerowane obrazy w folderze stylów i utworzy nowe.

Jeet
źródło
1

jeśli masz niestandardowy szablon i chcesz wymusić styl dla pola obrazu:

 $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
źródło