Client Libraries JavaScript Page Head Not Loading into Publisher

Avatar

Avatar

FrancescaBueti

Avatar

FrancescaBueti

FrancescaBueti

02-05-2019

I have configured a Client Library JavaScript Page Head like so:

1744822_pastedImage_0.png

In author is appears as expected:

1744985_pastedImage_1.png

In publisher, however, it does not appear. All pages and packages are active/published.

Is there anything that could be preventing this from appearing in the publisher instance?

Thanks,

Francesca

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

Ravi_Pampana

MVP

Avatar

Ravi_Pampana

MVP

Ravi_Pampana
MVP

02-05-2019

If your clientlibs files are under /apps (which is recommended by adobe from AEM 6.4 onwards) you need to add "allowProxy" property so that clientlibs will be loaded via etc.clientlibs

jcr:primaryType="cq:ClientLibraryFolder"

allowProxy="{Boolean}true"

Also, make sure in publisher /etc is having read access for everyone user

From Adobe Documentation:

In order for the client libraries under /apps to be accessible, a proxy servelt is used. The ACLs are still enforced on the client library folder, but the servlet allows for the content to be read via /etc.clientlibs/ if the allowProxy property is set to true.

A static resource can only be accessed via the proxy, if it resides below a resource below the client library folder.

As an example:

  • You have a clientlib in /apps/myproject/clientlibs/foo
  • You have a static image in /apps/myprojects/clientlibs/foo/resources/icon.png

Then you set the allowProxy property on foo to true.

  • You can then request /etc.clientlibs/myprojects/clientlibs/foo.js
  • You can then reference the image via /etc.clientlibs/myprojects/clientlibs/foo/resources/icon.png

Answers (5)

Answers (5)

Avatar

Avatar

Ravi_Pampana

MVP

Avatar

Ravi_Pampana

MVP

Ravi_Pampana
MVP

03-05-2019

You can add read permission to everyone and anonymous user in publish instance (/etc/designs, /etc/clientlibs) by going to useradmin console and search for below users

Everyone

Screen Shot 2019-05-03 at 10.01.35 AM.png

Anonymous

Screen Shot 2019-05-03 at 9.59.05 AM.png

Avatar

Avatar

FrancescaBueti

Avatar

FrancescaBueti

FrancescaBueti

03-05-2019

Hi,

The script tag is generated by referencing the library via the template policy:

1745463_pastedImage_0.png

Is including libraries at the template-level like so not best practice?

Best,

Francesca

Avatar

Avatar

FrancescaBueti

Avatar

FrancescaBueti

FrancescaBueti

03-05-2019

Hi Ravi,

Thank you for your response! I have updated the allowProxy property and the path has been updated accordingly:

1745410_pastedImage_0.png

However, it is still missing on publish. Though it seems to be able to pull in other clientlibs without issue:

1745462_pastedImage_1.png

Can you elaborate on how to "make sure in publisher /etc is having read access for everyone user"?

Thanks,

Francesca

Avatar

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K
smacdonald2008

02-05-2019

As Ravi points out - you should include Clientlibs the correct way - using a script tag does not address best practice.

Avatar

Avatar

Mali001

Employee

Avatar

Mali001

Employee

Mali001
Employee

02-05-2019

francesca​ You might have to reference using /etc.clientlibs but before that you need to configure "Client Library Folder and Using the Proxy Client Libraries Servlet" - Please check Using Client-Side Libraries - read section "Locating Client Library Folder and Using the Proxy Client Libraries Servlet"