Control.ResolveUrl versus Control.ResolveClientUrl versus VirtualPathUtility.ToAbsolute
The difference between ResolveUrl and ResolveClientUrl is that ResolveClientUrl returns a path relative to the current page, ResolveUrl returns a path relative to the site root:
I would recommend using absolute paths.
Edit: Rick Strahl posted a nice article about this
Edit2: Removed bit about caching. Does not add to the answer and may not necessarily be accurate.