Désactivation du vérificateur de lien d’AEM

Description

Le vérificateur de liens est configuré pour ne pas effectuer d’action si un lien est rompu. Dans ce cas, comment désactiver le vérificateur de lien externe pour valider les liens ? En effectuant le profilage du processeur et l'analyse des images mémoire de threads, la vérification des liens affecte les performances et nous aimerions la désactiver.

Contexte: chaque fois qu’un site est chargé dans AEM, le vérificateur de liens recherche automatiquement les liens incorporés dans toutes les pages de contenu et marque chaque lien comme étant valide ou non valide.

Cela peut ralentir une instance ou un site en raison d’un grand nombre d’avertissements du vérificateur de liens dans le journal.  Vous pouvez décider de désactiver la vérification des liens.

Remarque: le vérificateur de liens ne doit pas être activé sur publier instances.

Résolution


Comment désactiver le vérificateur de liens ou le configurer pour marquer les liens comme valides dans AEM

  1. Désactiver la vérification des liens dans les pages :

    • Ajouter x-cq-linkchecker="valid" dans la balise a pour s’assurer que les liens sont toujours marqués comme valides par le vérificateur de liens.
    • Utilisation facultative x-cq-linkchecker="skip" dans le a. Le vérificateur de liens ne vérifie même pas la validité.
  2. Désactivez complètement le vérificateur de liens via le Console web d’AEM :

    • Accédez à la configuration de la console Web AEM 1.
    • Recherchez le Transformateur du vérificateur de liens Day CQ.
    • Vérifiez la boîte « Désactiver la vérification », puis cliquez sur Enregistrer.
  3. Désactiver la vérification des liens pour un certain domaine :

    • Accédez à la configuration de la console Web AEM 1.
    • Rechercher Service de vérificateur de lien Day CQ.
    • Modifiez la variable Modèles de remplacement de la vérification de lien .

Exemple 1: system/

Tout lien externe commençant par system ne sera pas cochée.  Ajoutez d’autres modèles de remplacement à cette section en cliquant sur le signe +.

Exemple 2:

Tous les liens seront ainsi marqués comme valides à l’avenir.

Recommandé: supprimez tous les noeuds sous /var/linkchecker pour empêcher le vérificateur de liens de revérifier les URL.

1 http://host:port/system/console/configMgr

Remarque :

Si vous utilisez service.special_link_patterns, le vérificateur de liens vérifie toujours l’URL pour voir si elle est valide en termes de caractères et de structure.

Désactivation programmée de la vérification des liens externes

L’ajout de ce code dans votre composant de page jsp empêche la vérification externe des liens d’être effectuée en appelant LinkCheckerSettings.fromRequest(slingRequest).setIgnoreExternals(true).  Dans la plupart des cas, vous ne l’implémentez que sur les instances de publication, et non sur les instances de création.  Voici un code à montrer :

org.apache.sling.runmode.RunMode runmode = sling.getService(org.apache.sling.runmode.RunMode.class);
String runmodes = runmode.getCurrentRunModes();
boolean isPublish = false;
String expectedRunModes = {
    "publish"
};
if (runmode.isActive(expectedRunModes)) {
    isPublish = true;
}
if (isPublish) {
    LinkCheckerSettings s = LinkCheckerSettings.fromRequest(slingRequest);
    s.setIgnoreExternals(true);
}

Si vous souhaitez uniquement désactiver la vérification des liens pour un composant ou une partie spécifique de la page, vous pouvez la réactiver avec ce code :

s.setIgnoreExternals( false );

Sur cette page