Par défaut, Drupal définit le passage de tous les fichiers comme un passage relatif, par exemple /sites/default/files/2022-03/dummy.pdf. Ainsi, si vous utilisez votre site Drupal comme une API (Rest ou graphQl) et que le texte wysiwyg (Body par exemple) contient des fichiers, votre site frontal (https://www.front-site.com) vous redirigera vers le mauvais passage parce que votre serveur frontal cherchera dans https://www.front-site.com/sites/default/files/2022-03/dummy.pdf, qui n'existe pas sur votre serveur frontal.
Alors comment convertir le passage de tous les fichiers en passage absolu ?
Pour changer le passage des fichiers, nous devons prétraiter le hook file_link et rendre l'URL absolue, pour ce faire nous utiliserons hook_preprocess_HOOK comme suit :
use Drupal\Core\Url;
/**
* Implements hook_preprocess_HOOK().
*/
function [MODULE_NAME]_preprocess_file_link(&$variables) {
if (isset($variables['link']['#url']) && $variables['link']['#url'] instanceof Url) {
// Set url absolute to true.
$variables['link']['#url']->setAbsolute(TRUE);
}
}
Vous aurez maintenant :
Au lieu de :
Nous espérons avoir répondu à votre problématique.
Vous avez un projet ? Contactez-nous pour en parler davantage : Contact
Auteur : Azz-eddine BERRAMOU