server.mappath解析相对目录的引用文件路径

时间:2016-04-22 15:47:37

标签: c# .net path server.mappath

在我的mvc应用程序中,我尝试提供像这样的HTML页面

return File(Server.MapPath("~/Documentation/" + decoded["version"].ToString().Trim() + "/" + "index.htm"), "text/html");

入口点index.htm包含一些js脚本。

<script type="text/javascript" src="./whver.js"></script>

即使我指定了相对url,包含的脚本的路径也会被解析为应用程序根目录。

指定绝对路径有效,但由于动态生成的目录名称,我需要脚本来引用相对位置。

据我所知,我提供的信息不足。 我认为发生的事情是.htm文件是从Index控制器返回的,它的路由是应用程序根目录。这就是为什么相对路径会被解决的原因。

1 个答案:

答案 0 :(得分:1)

我希望如果你改变从相对到绝对的路径,那将更容易。绝对路径以斜杠开头 - '/'并显示您网站的根点。我的意思是当你访问website.com/index.html页面的绝对路径是/index.html。

下一个代码对我有用。 public ActionResult Index() { using (var streamRead = System.IO.File.OpenRead( System.IO.Path.Combine( Server.MapPath("~/Documents"), "index.html"))) { return File(streamRead, "text/html"); } }

和html页面: <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> </head> <body> <script type="text/javascript" src="/Scripts/jquery-1.10.2.js" ></script> <script> console.dir("jquery version: " + jQuery.fn.jquery); </script> </body> </html>