如何在组件';s jsp/HTMLAEM6.3?

如何在组件';s jsp/HTMLAEM6.3?,aem,sightly,Aem,Sightly,假设我的页面url是www.test.com/myproject/en/test.html。现在我需要在组件的jsp/html文件中获取“/myproject/en/test.html”。我们正在使用它 我正在尝试使用下面的代码来实现它- <script> var x = window.location.pathname; alert(x); </script> 如何在meta标记中传递x的值?或者,还有其他方法可以实现吗?javascript是在浏览器上执行的

假设我的页面url是
www.test.com/myproject/en/test.html
。现在我需要在组件的jsp/html文件中获取“
/myproject/en/test.html
”。我们正在使用它

我正在尝试使用下面的代码来实现它-

<script>
    var x = window.location.pathname;
alert(x);
</script>
如何在meta标记中传递
x
的值?或者,还有其他方法可以实现吗?

javascript是在浏览器上执行的客户端代码。 sighly/jsp是已经在服务器端编译和呈现的服务器端代码。您的favicon代码将是服务器端渲染。下面是一个例子:

目瞪口呆地说:

<link rel="icon" href="https://mywebsite.com/${currentPage.path}">
好处:内置了getFavIcons实现。可以利用它。

javascript是在浏览器上执行的客户端代码。 sighly/jsp是已经在服务器端编译和呈现的服务器端代码。您的favicon代码将是服务器端渲染。下面是一个例子:

目瞪口呆地说:

<link rel="icon" href="https://mywebsite.com/${currentPage.path}">

好处:内置了getFavIcons实现。可以利用它。

您可以直接使用Sightly提供的请求对象(Java支持的对象)

有关完整的URL:

${request.requestURL.toString}
对于当前页面路径:

${currentPage.path} // returns only the path without domain name
对于URL的特定部分:

${request.scheme} // returns https or http
${request.serverName} // returns server name eg: stackoverflow.com
${request.serverPort} // returns server port eg: 4502 for AEM
${request.requestURI} // returns URI eg: /content/test.html
连接特定部分以在Sighlty中创建所需的url:

<sly data-sly-test.scheme="${request.scheme}"/>
<sly data-sly-test.servername="${request.serverName}"/>
<sly data-sly-test.serverport="${request.serverPort}"/>
<sly data-sly-test.uri="${request.requestURI}"/>

<link rel="icon" href="${scheme}://${servername}:${serverport}${uri}">

请求对象下可用的方法:

其他有用的HTL全局对象:

您可以直接使用Sightly提供的请求对象(Java支持的对象)

有关完整的URL:

${request.requestURL.toString}
对于当前页面路径:

${currentPage.path} // returns only the path without domain name
对于URL的特定部分:

${request.scheme} // returns https or http
${request.serverName} // returns server name eg: stackoverflow.com
${request.serverPort} // returns server port eg: 4502 for AEM
${request.requestURI} // returns URI eg: /content/test.html
连接特定部分以在Sighlty中创建所需的url:

<sly data-sly-test.scheme="${request.scheme}"/>
<sly data-sly-test.servername="${request.serverName}"/>
<sly data-sly-test.serverport="${request.serverPort}"/>
<sly data-sly-test.uri="${request.requestURI}"/>

<link rel="icon" href="${scheme}://${servername}:${serverport}${uri}">

请求对象下可用的方法:

其他有用的HTL全局对象:

Sightly是服务器端语言,您将无法访问Sightly标记中的客户端Javascript变量,因为该变量在浏览器上运行Javascript之前已被处理。您可以看看,您可以使用JS中的
currentPage
对象使用API来获取路径。如果您已使用
resourcesolver
解析了路径,则该路径也将可用。但是,如果您在web服务器上使用重写规则处理URL,则需要进行不同的处理。Sightly是服务器端语言,您将无法访问Sightly标记中的客户端Javascript变量,因为在浏览器上运行Javascript之前,客户端Javascript变量已被处理。您可以看看,您可以使用JS中的
currentPage
对象使用API来获取路径。如果您已使用
resourcesolver
解析了路径,则该路径也将可用。但如果您在web服务器上使用重写规则处理URL,则需要以不同的方式处理。谢谢这对我有帮助。谢谢这对我有帮助。