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ę?


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:



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

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.


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.


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.


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)." >";

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.