Mvc使用虚拟目录的相对路径。帮助!

时间:2010-05-18 04:44:25

标签: html asp.net-mvc model-view-controller relative-path

当我将image / script / css文件拖放到我的视图中时,相对路径将自动用于引用文件。

示例:

<link href="../../Content/style.css" rel="stylesheet" type="text/css" />
 <script src="../../Scripts/jquery-min.js" type="text/javascript"></script>
 <img src="../../Images/logo.jpg" />

当我将它托管在我的根目录上时工作正常,但是如果我使用的是虚拟目录,那么只有我的css文件才能正确引用,其余的将返回404 ...因为它将引用{{1而不是http://{root}/Images/logo.jpg

但是为什么css文件正常工作?以及如何正确指定root和amp;的相对路径虚拟目录案例?

2 个答案:

答案 0 :(得分:5)

类似......

   <script type="text/javascript"  
            src="<%= Url.Content ("~/Scripts/jquery.js") %>">
   </script> 

会做的伎俩

答案 1 :(得分:3)

此外,与Kazi Manzur's MVC Best Practices相关,您可以创建UrlHelper方法来处理所有内容(脚本,样式表,图像等)文件路径的创建。这样,如果您更改目录,您只需更改相应的UrlHelper:

   public static string Style(this UrlHelper url, string fileName)
   {
       return url.Content("~/content/{0}".FormatWith(fileName));
   }

   public static string Script(this UrlHelper url, string fileName)
   {
       return url.Content("~/scripts/{0}".FormatWith(fileName));
   }

然后,在您的ViewPage或MasterPage中,您可以像这样编写路径:

<link  href="<%= Url.Style("site.css")%>" rel="stylesheet" type="text/css"/>