/// <summary> /// Translates the virtual path (~/something) to the domain relative path (/virtualDirectory/something). /// For example, when the app is configured to run in a virtual directory '/virtDir', the URL '~/myPage.dothtml' will be translated to '/virtDir/myPage.dothtml'. /// </summary> public static string TranslateVirtualPath(string virtualUrl, IHttpContext httpContext) { if (virtualUrl.StartsWith("~/", StringComparison.Ordinal)) { var url = DotvvmMiddlewareBase.GetVirtualDirectory(httpContext) + "/" + virtualUrl.Substring(2); if (!url.StartsWith("/", StringComparison.Ordinal)) { url = "/" + url; } return(url); } else { return(virtualUrl); } }
private string GetCorrectSpaUrlPrefix(IDotvvmRequestContext context) { var routePath = ""; if (!string.IsNullOrEmpty(PrefixRouteName)) { routePath = context.Configuration.RouteTable[PrefixRouteName].Url.Trim('/'); } else { return(null); } var result = DotvvmMiddlewareBase.GetVirtualDirectory(context.HttpContext); if (!string.IsNullOrEmpty(routePath)) { result += "/" + routePath; } return(result); }