开发者

Mvc relative path using virtual directory..help!

When i drag and drop my image/script/css file into my view, relative path will automatically use to refer on the files.

example:

<link href="../../Content/style.css" rel="stylesheet" type="text/css" />
 <script src="../../Scripts/jquery-min.js" type="text/javascript"></script>
 <img src="../../Images/log开发者_C百科o.jpg" />

It is working fine when i host it on my root directory, but if i'm using virtual directory then only my css file able to refer correctly, the rest will return 404...as it will refer to http://{root}/Images/logo.jpg rather than http://{root}/{virtual directory}/Images/logo.jpg

But why css file is working? and how to specify the relative path correctly for both root & virtual directory cases?


something like...

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

will do the trick


Also, related to Kazi Manzur's MVC Best Practices, you could create UrlHelper methods to handle the creation of all of your content (script, stylesheet, images, etc) filepaths. That way, if you change the directory, all you have to do is change the corresponding 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));
   }

Then, in your ViewPage or MasterPage, you can write the paths like so:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜