server.mappath 将引用的文件路径解析为相对目录
本文关键字:相对 路径 mappath 引用 文件 server | 更新日期: 2024-11-08 02:58:03
在我的 mvc 应用程序中,我正在尝试提供这样的 html 页面
return File(Server.MapPath("~/Documentation/" + decoded["version"].ToString().Trim() + "/" + "index.htm"), "text/html");
入口点索引.htm包括一些 js 脚本。
<script type="text/javascript" src="./whver.js"></script>
即使我指定了相对 url,所包含脚本的路径也会解析为应用程序根目录。
指定绝对路径有效,但由于动态生成的目录名称,我需要脚本来引用相对位置。
我知道我没有提供足够的信息。我认为正在发生的事情是.htm文件是从索引控制器返回的,其路由是应用程序根目录。这就是为什么相对路径是这样解析的。
我希望如果你将路径从相对更改为绝对,它会更容易。绝对路径以斜杠 - '/' 开头,显示您网站的根点。我的意思是当你转到页面的 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>