Korzystam z image_style_url, aby uzyskać miniaturę zdjęcia dodanego przez interfejs administratora.
// $foo->field_picture['und'][0]['uri'] has value public://foo.jpg
image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']);
Interfejs API stwierdza, że obraz zostanie utworzony, gdy zostanie zażądany adres URL. Jednak podczas odwiedzania strony obraz nie jest wyświetlany (404). Adres URL zwrócony z funkcji wydaje się być dobrze sformułowany, ale plik nie został utworzony.
Folder „foo-thumb” znajduje się w publicznym folderze danych, a uprawnienia do plików powinny być OK. Próbowałem opróżnić pamięć podręczną obrazu (drupal image-flush foo-thumb), ale nadal nie ma wyników.
Jakieś pomysły?
image_style_create_derivative
tej$style
zmiennej powinna być tablica$style = image_style_load('my_style');
$style
choćimage_style_load()
przed przekazaniem doimage_style_create_derivative()
jak na docs .Częstym błędem jest to, że identyfikatory URI nie są poprawnie sformatowane. Sprawdź, czy parametr URI ma prefiks
public://
.Zła praktyka
To generuje adres URL do stylizowanego obrazu (z tokenem graficznym), ale nie generuje stylizowanego obrazu, jeśli nie został wcześniej wygenerowany.
Dobra praktyka
Powoduje to wyświetlenie stylu adresu URL, takiego jak powyżej, i generuje stylizowany obraz, jeśli nie istnieje.
źródło
Ścieżka publicznego systemu plików była nieprawidłowa.
źródło
Inną opcją jest użycie funkcji motywu.
Zamiast zwracać adres URL, zwraca html dla img.
źródło
tutaj możesz użyć adresu URL do utworzenia HTML
źródło
Upewnij się, że masz
foo-thumb
styl, możesz to sprawdzić naadmin/config/media/image-styles
.Pierwszymi parametrami image_style_url jest nazwa stylu , a nie nazwa folderu .
źródło
ErrorDocument 404 /index.php
, czy korzystasz z Drupala na swojej domenie? Inną próbą jest instalacja pakietu narzędzi imagemagick, ale widzę, że twój problem nie jest związany z renderowaniem obrazu php.Jeśli otrzymujesz 404 podczas próby wyświetlenia obrazu, istnieje możliwość, że nazwa stylu obrazu jest nieprawidłowa. W moim przypadku nazwa stylu wyświetlana w Stylach obrazów nie była nazwą komputera nazwy stylu. Po najechaniu kursorem na styl adres URL wyświetli nazwę komputera o nazwie stylu. Zmień go na nazwę komputera lub usuń bieżącą i utwórz ponownie z potrzebną nazwą.
źródło