Generating Grails static resource link manually

22 / Oct / 2015 by Salil Kumar 0 comments

In case you are using Grails resources plugin and at some point you need to generate the static resource link in some service or ordinary ‘src’ class – following is a quick code that can help you getting the resources link/URL (by using resources tag lib only). The good part is that it’s not a hard-coded URL, so it will follow all the standards/settings configured around the Grails resources-plugin.

[code]
def grailsApplication
String getStaticResourceLink(String uri){
if(uri){
def resourceTagLib = grailsApplication.mainContext.getBean("org.grails.plugin.resource.ResourceTagLib")
def rLinkResource = resourceTagLib ? resourceTagLib.resolveLinkUriToUriAndResource(uri: uri): null
if(rLinkResource)
uri = rLinkResource.uri
}
return uri
}
[/code]

Usually, resources plugin automatically renders the URLs in an application. But this was a very special requirement where I was required to generate the link manually. Another condition was to follow all the resources-plugin’s settings because it does a lot of work before generating the (dynamic/accurate/relevant) links. So this worked very well – even for the CDN configurations.
The only thing you need to take care is to pass the correct “uri” otherwise (if resource not found at the given location/uri) you may get a broken link.

I hope it will help someone. 🙂

FOUND THIS USEFUL? SHARE IT

Leave a Reply

Your email address will not be published. Required fields are marked *