2016-04-22 91 views
1

在我的MVC應用程序,我想成爲一個html頁面類似這樣的決心使用Server.Mappath引用的文件路徑相對DIR

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文件,其路由是應用程序根目錄。這就是爲什麼相對路徑如此解決。

+1

請說明你/想要的網址。 「./whver.js」實際上是相對於當前頁面的url - 所以不太清楚你期望它解決什麼。 –

+0

備註:MVC標籤適用於MVC設計模式問題 - 從我所能看到的與您的帖子完全無關。可能你的意思是'asp.net-mvc'。 –

+0

我希望它解決到文檔下的動態生成的文件夾,在我的情況/Documentation/791/whver.js,但由於某種原因我得到localhost/whver.js –

回答

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>

+0

在我的問題中,我指定絕對路徑有效,但我有動態生成的文件夾 –