2016-08-31 3 views
0

Я работаю над HTTP caching и для реализации перебора кеша использую ACS Versioned ClientLibs. Теперь это отлично работает для js-файла, когда он является частью clientlib. Например, <script src="/etc/designs/myapp/clientlibs/base.js"> работ. Но когда я пытаюсь получить доступ к отдельному js в библиотеке, он не работает. Например, <script src="/etc/designs/myapp/clientlibs/base/js/app1.js"> не работает. Причина в том, что хеш MD5 добавлен, когда селектор sling разрешается, когда он является clientlib js. Но селектор не становится разрешенным при вызове js в отдельности. </base.hash.js> работает, но </base/js/app1.hash.js> не работает.Как работают селекторы сеялки?

Как AEM знает, как разрешить селектор при вызове clientlib и не делает при вызове отдельных js?

И причина, по которой мне нужны селекторы для работы, является, согласно PageSpeed, большинство прокси-серверов donot cache статические ссылки? пары. И попросит удалить параметры запроса. Поэтому я не могу добавить параметр запроса для перебора кеша.

+0

Не 100% уверены, что только в качестве комментария, а не как ответ: объединенные файлы js обрабатываются AEM до его возврата и, таким образом, учитывается хэш. Отдельные файлы, кажется, отправляются обратно как обычные двоичные файлы без какой-либо обработки. – Thomas

+0

Да, я тоже так понимаю. Но если кто-то проливает свет на то, что происходит, возможно, можно подумать о некоторых исправлениях для решения этой проблемы. –

ответ

0

/и т.д./конструкции/MyApp/clientlibs/база является сд: ClientLibraryResource

/etc/designs/myapp/clientlibs/base/js/app.js является нт: файл ресурсов.

Там нет ресурсов .../базы/JS/приложение этого вы не можете запросить эту ресурс в селектор (app.hash.js)

+0

Это самый близкий ответ, который я мог бы получить, чтобы распознаватель ресурсов мог анализировать селектор sling только тогда, когда он является [HTMLLibrary] (https://docs.adobe.com/docs/en/cq/5-6-1/javadoc/ ком/день/сд/виджет/HtmlLibrary.html). В случае jcr: primaryType: nt: file, он не может быть разрешен, так как HTMLLibrary, и редактор ресурсов просто возвращает полный текст, как разрешенный, который в конечном итоге не выполняется. И решение моей проблемы я пишу диспетчер-переписчик, чтобы вырезать селектора. –

Смежные вопросы