2016-04-22 5 views
1

В моем приложении MVC, я пытаюсь служить HTML-страницы, как этотServer.MapPath решительность путь указанный файл в директории относительной

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

Просьба уточнить, что URLS вы получаете/хотите. «./whver.js» действительно является URL-адресом относительно текущей страницы, поэтому не совсем понятно, что вы ожидаете от него. –

+0

Боковое примечание: MVC-тэг предназначен для шаблонов шаблонов MVC - он совершенно не связан с вашим сообщением из того, что я вижу. Возможно, вы имеете в виду 'asp.net-mvc'. –

+0

Я ожидаю, что он разрешит динамически сгенерированную папку в разделе Документация, в моем случае /Documentation/791/whver.js, но Im получает 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

В моем вопросе я указал, что абсолютный путь работает, но у меня есть динамически созданная папка –