J'utilise image_style_url pour obtenir une vignette d'une image que j'ai ajoutée via l'interface administrateur.
// $foo->field_picture['und'][0]['uri'] has value public://foo.jpg
image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']);
L'API indique que l'image sera créée lorsque l'URL sera demandée. Cependant, lorsque vous visitez la page, l'image ne s'affiche pas (404). L'URL renvoyée par la fonction semble être bien formée, mais le fichier n'a pas été créé.
Le dossier «foo-thumb» se trouve dans le dossier de données public et les autorisations de fichier doivent être OK. J'ai essayé de vider le cache d'image (drupal image-flush foo-thumb) mais toujours aucun résultat.
Des idées?
image_style_create_derivative
la$style
variable doit être rangée$style = image_style_load('my_style');
$style
bienimage_style_load()
avant de passer àimage_style_create_derivative()
selon les docs .Une erreur courante est que les URI ne sont pas correctement formatés. Vérifiez que votre paramètre URI est préfixé
public://
.Mauvaise pratique
Cela génère une URL vers l'image stylisée (avec un jeton d'image), mais ne génère pas une image stylisée lorsqu'elle n'a pas été précédemment générée.
Bonnes pratiques
Cela génère une URL stylisée, comme ci-dessus, et génère une image stylisée s'il n'en existe pas.
la source
Le chemin du système de fichiers public était incorrect.
la source
Une autre option consiste à utiliser la fonction thème.
Plutôt que de renvoyer l'URL, il renverra le code HTML de l'img.
la source
ici, vous pouvez utiliser l'URL pour créer du HTML
la source
Assurez-vous d'avoir du
foo-thumb
style, vous pouvez vérifier suradmin/config/media/image-styles
.Le premier paramètre de image_style_url est un nom de style , pas un nom de dossier .
la source
ErrorDocument 404 /index.php
, exécutez-vous Drupal au-dessus de votre domaine? Un autre essai est d'installer la boîte à outils imagemagick mais je vois que votre problème n'est pas un problème par le rendu d'image de php.Si vous recevez un 404 lorsque vous essayez d'afficher l'image, il est possible que le nom du style d'image ne soit pas correct. Dans mon cas, le nom de style affiché dans Styles d'image n'était pas le nom de machine du nom de style. Lorsque vous survolez le style, l'URL affiche le nom de la machine du nom du style. Modifiez-le par le nom de la machine ou supprimez le nom actuel et recréez-le avec le nom requis.
la source