在hybris中以编程方式获取绝对媒体路径
Get absolute media path programatically in hybris
我正在处理 Hybris 版本 5.4.0,特别是导出数据的工作。我希望导出媒体的完整外部路径(即 URL)而不是相对路径
例如:/medias/sys_master/h76/hd6/8865465963102.jpg --> http://myserver:myport/medias/sys_master/h76/hd6/8865465963102.jpg
我已经在 Hybris Wiki 中看到了使用语言环境中的静态声明来完成此操作的方法,但我想以编程方式执行此操作,因为我的应用程序可能 运行 在各种服务器和环境中。
我已经尝试过在 Java 中获取服务器地址的常用方法(例如使用 INet),但它没有用。
最后,我看到在 HMC 中,我想要的确切信息显示在此处的末尾:
Copyright (c) 2000-2013 hybris AG - hybris
Version: null
5.4.0.0
Last compile: 20180410 1543
Release date: 20141113 1921
Server: localhost:9101
Locale: English (United Kingdom) - en_GB
Timezone: Central European Time - Europe/Paris
但它在 defaultContent_jsp.java(然后 out.print(request.getServerName()+":"+request.getServerPort());
)中捕获了一个 servlet 请求,我有办法将此信息传播到我的工作吗?
在 属性 文件中配置媒体 URL
将 mycmssite
和 mysite
更改为您各自的值
media.mycmssite.http=https\://www.mysite.com
media.mycmssite.https=https\://www.mysite.com
在你的工作中获取 MediaUrlForSite
- 获取当前会话站点
- 获取 getMediaUrlForSite
- 连接 getMediaUrlForSite 和媒体URL
@Resource(name = "cmsSiteService")
private CMSSiteService cmsSiteService;
@Resource(name = "siteBaseUrlResolutionService")
private SiteBaseUrlResolutionService siteBaseUrlResolutionService;
MediaModel media = ...
final CMSSiteModel currentSite = cmsSiteService.getCurrentSite();
final String mediaUrlForSite = siteBaseUrlResolutionService.getMediaUrlForSite(currentSite, true, "");
String downloadURL = mediaUrlForSite + media .getURL()
我正在处理 Hybris 版本 5.4.0,特别是导出数据的工作。我希望导出媒体的完整外部路径(即 URL)而不是相对路径
例如:/medias/sys_master/h76/hd6/8865465963102.jpg --> http://myserver:myport/medias/sys_master/h76/hd6/8865465963102.jpg
我已经在 Hybris Wiki 中看到了使用语言环境中的静态声明来完成此操作的方法,但我想以编程方式执行此操作,因为我的应用程序可能 运行 在各种服务器和环境中。
我已经尝试过在 Java 中获取服务器地址的常用方法(例如使用 INet),但它没有用。
最后,我看到在 HMC 中,我想要的确切信息显示在此处的末尾:
Copyright (c) 2000-2013 hybris AG - hybris
Version: null
5.4.0.0
Last compile: 20180410 1543
Release date: 20141113 1921
Server: localhost:9101
Locale: English (United Kingdom) - en_GB
Timezone: Central European Time - Europe/Paris
但它在 defaultContent_jsp.java(然后 out.print(request.getServerName()+":"+request.getServerPort());
)中捕获了一个 servlet 请求,我有办法将此信息传播到我的工作吗?
在 属性 文件中配置媒体 URL
将 mycmssite
和 mysite
更改为您各自的值
media.mycmssite.http=https\://www.mysite.com
media.mycmssite.https=https\://www.mysite.com
在你的工作中获取 MediaUrlForSite
- 获取当前会话站点
- 获取 getMediaUrlForSite
- 连接 getMediaUrlForSite 和媒体URL
@Resource(name = "cmsSiteService")
private CMSSiteService cmsSiteService;
@Resource(name = "siteBaseUrlResolutionService")
private SiteBaseUrlResolutionService siteBaseUrlResolutionService;
MediaModel media = ...
final CMSSiteModel currentSite = cmsSiteService.getCurrentSite();
final String mediaUrlForSite = siteBaseUrlResolutionService.getMediaUrlForSite(currentSite, true, "");
String downloadURL = mediaUrlForSite + media .getURL()