AEM RTE со стандартным плагином Hyperlink, кэшированным на диспетчере, не сокращается для вторых, третьих ссылок в одной строке - PullRequest
0 голосов
/ 07 февраля 2019

Изображение проблемы У меня возникла эта проблема при использовании стандартной функции гиперссылки плагина RTE в AEM.

Щелчок по ссылкам работает правильно, когда он направляет меня к правильномусокращенный URL (/usa-en/delete/smart-factory.html), как и ожидалось.

Однако при наведении на ссылку или на источник просмотра созданной разметки возникает проблема, при которой ссылки показывают абсолютный путь с (/ content / te-com / usa / en / pages /….), Который влияет на нашуSEO.

На самом деле, только когда первая ссылка укорачивается, а все остальные ссылки показывают абсолютный путь (/ content / te-com / ... путь), когда я наводю указатель мыши на ссылки.Я подозреваю, что кешированные ссылки имеют проблему с сокращением пути.

Хранение узла в JCR:

<p>Hello <a href="/content/te-com/usa/en/pages/delete/smart-factory.html">one</a> and <a href="/content/te-com/usa/en/pages/delete/pgp-test0.html">two</a>.&nbsp;</p>

Сгенерированная разметка HTML из источника:

<div class="global-rte-std-bold global-labels parbase section"><p>Hello <a href="/usa-en/delete/smart-factory.html">one</a> and <a href="/content/te-com/usa/en/pages/delete/pgp-test0.html">two</a>.&nbsp;</p>

Однако, когда ядобавить shift + Enter при использовании RTE, добавляется тег
, и URL-адрес как-то сокращается для всех ссылок, как и ожидалось, как показано в разметке ниже.Хранение узла по-прежнему такое же, как и выше, как и без shift + enter

Сгенерированная разметка (обратите внимание, что URL-адреса сокращены): <div class="global-rte-std-bold global-labels parbase section"><p>Hello <a href="/usa-en/delete/smart-factory.html">one</a> and<br><a href="/usa-en/delete/pgp-test0.html">two</a>.&nbsp;</p>

Также у нас есть следующее правило переписывания в Apacheэто действительно вступает в силу, когда я нажимаю на ссылку.Я подозреваю, что кешированные URL с RTE имеют эту проблему.

RewriteRule ^ /? Usa-en /?(.*)$ / content / te-com / usa / en / pages / $ 1 [PT, QSA].

Примечание: у нас естьне настроенный плагин RTE и его стандартный плагин Hyperlink, который мы использовали в AEM 6.2

Код, используемый здесь, является простым

Интересно, как он работает правильно с Shift + Enter, а не когдаУ меня есть ссылки на одной линии.

Любая помощь по этому вопросу будет принята с благодарностью.Спасибо

1 Ответ

0 голосов
/ 08 февраля 2019

Когда вы связываете внутреннюю страницу / ресурс с RTE-редактором, сокращение URL не работает.Я столкнулся с той же ситуацией, и для этого мне пришлось написать собственный переписчик Sling, чтобы преобразовать ссылку так, чтобы resourceResolver.map (path) работал нормально.

 @Override
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
   int hrefIndex = atts.getIndex("href");
    String href = atts.getValue("href");
  atts.setValue(hrefIndex, resolver.map(href));
}
...