public static void SetBaseForRelativePaths(HtmlDom dom, string folderPath, bool pointAtEmbeddedServer) { string path = ""; if (!string.IsNullOrEmpty(folderPath)) { if (pointAtEmbeddedServer && Settings.Default.ImageHandler == "http" && ImageServer.IsAbleToUsePort) { //this is only used by relative paths, and only img src's are left relative. //we are redirecting through our build-in httplistener in order to shrink //big images before giving them to gecko which has trouble with really hi-res ones var uri = folderPath + Path.DirectorySeparatorChar; uri = uri.Replace(":", "%3A"); uri = uri.Replace('\\', '/'); uri = ImageServer.GetPathEndingInSlash() + uri; path = uri; } else { path = "file://" + folderPath + Path.DirectorySeparatorChar; } } dom.SetBaseForRelativePaths(path); }