/// <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);
     }
 }
Example #2
0
        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);
        }