从文件路径创建相对Web路径

时间:2015-08-17 15:02:47

标签: vb.net

Dim sb As New StringBuilder()
Dim wdgtUrl = Path.Combine(Root, "widgets").Replace("\", "/")
Dim rootDir As String = HttpContext.Current.Server.MapPath(wdgtUrl)
sb.Append(String.Format("<script type=""text/javascript"" src=""{0}""></script>", Root.TrimStart({"~"c}) + "/custom.js"))
If System.IO.Directory.Exists(rootDir) AndAlso System.IO.Directory.GetFiles(rootDir, "*.js", SearchOption.TopDirectoryOnly).Length > 0 Then
  For Each Path As String In System.IO.Directory.GetFiles(rootDir, "*.js", SearchOption.TopDirectoryOnly)
    sb.Append(String.Format("<script type=""text/javascript"" src=""/{0}""></script>", Path.Replace(Request.ServerVariables("APPL_PHYSICAL_PATH"), [String].Empty).Replace("\", "/")))
  Next
End If

我使用以下代码搜索目录,并为目录中的每个JavaScript文件创建脚本标记。这在本地工作正常,但在生产站点上,脚本返回404响应,因为链接以:

开头

/ E:/ WEB /主要/

我原本预计

Path.Replace(Request.ServerVariables("APPL_PHYSICAL_PATH"), [String].Empty)

替换它,但在这种情况下它没有。在生产盒上,文件夹是一个虚拟目录,而在本地它不是。我在本地创建了一个虚拟目录来测试并得到同样的问题。

任何见解都会很棒。

0 个答案:

没有答案