- Create an extension called staticmedia with a new class named ApacheMediaUrlStrategy that implements MediaURLStrategy interface. By default Hybris uses a base-64 encoded context request parameter that will not work properly in Apache. The ApacheMediaUrlStrategy uses a folder stategy so that apache can directly point to that directory. The below code in the class returns back //hostName/static/media/ in witch mediaHostUrl is an instance variable in ApacheMediaUrlStrategy class that contains hostName/static/media
return new StringBuilder(mediaHostUrl.length() + location.length() + 3).append("//").append(mediaHostUrl).append('/').append(location).toString();
- Add configuration properties to the local.properties to specify the mediaHostUrlwith an appropriate URL that points to you media serving apache layer and change the mediaurlstrategy
media.apachemedia.url=
media.folder.images.url.strategy=apacheMediaURLStrategy
|
- Add the new strategy to the staticmedia-spring.xml file
<bean id="apacheMediaURLStrategy" class="com.package.staticmedia.media.url.impl.ApacheMediaUrlStrategy">
<property name="mediaHostUrl" value="#{configurationService.configuration.getProperty('media.apachemedia.url')}" />
</bean>
</beans>
|
- Create ysynch to copy the image contents to the media.apachemedia.url
- Modify httpd.conf file to hanlde the media url inside the VirtualDirectory with 7 days of cache expiry for images and 10 minutes for the _ui directory
SetEnvIf Request_URI "^/images/*" no-jk
Alias /images /opt/hybris/media/sys_master/images "/opt/hybris/media/sys_master/images">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
Header append Cache-Control public,max-age=604800
SetEnvIf Request_URI "^/_ui/*" no-jk
Alias /_ui /opt/hybris/storefront/web/webroot/_ui "/opt/hybris/storefront/web/webroot/_ui">
Options FollowSymLinks MultiViews Indexes
AllowOverride None
Order allow,deny
Allow from all
Header append Cache-Control public,max-age=600
Reference
Hybris Wiki Static Contents from Apache
Wiki Versioned Static content