You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AEM组件的JSP/HTML中通过Sightly获取网站域名(无需Java代码)

在AEM中用HTL(Sightly)获取网站域名(无需Java代码)

当然可以!在AEM的HTL(也就是你提到的Sightly)里,完全不需要编写Java代码,直接利用内置的request对象就能轻松提取出网站的协议+域名部分(比如你例子里的https://test.com)。

基础实现(不含特殊端口处理)

如果你的网站使用HTTP默认端口80或HTTPS默认端口443,直接用下面的代码就能得到想要的结果:

${request.scheme}://${request.serverName}
  • ${request.scheme}:获取当前请求的协议,返回http或https
  • ${request.serverName}:获取当前请求的域名,比如test.com

完整实现(含非默认端口处理)

如果你的网站使用了非默认端口(比如http://test.com:8080或https://test.com:8443),可以通过条件判断来动态添加端口号,避免默认端口的冗余显示:

<sly data-sly-test.currentPort="${request.serverPort}"
     data-sly-test.isNonDefaultPort="${currentPort != 80 && currentPort != 443}">
    ${request.scheme}://${request.serverName}${isNonDefaultPort ? ':' + currentPort : ''}
</sly>

这段代码会自动判断:

  • 如果端口是80(HTTP默认)或443(HTTPS默认),只输出协议://域名
  • 如果是其他端口,会输出协议://域名:端口号

验证示例

针对你给出的URL https://test.com/en.html,上面的代码都会输出:

https://test.com

内容的提问来源于stack exchange,提问作者Sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:21:16