Aspnet MVC中的相对路径和绝对路径有什么区别?

时间:2014-02-10 06:44:16

标签: asp.net asp.net-mvc asp.net-mvc-4

这种相对和绝对的路径总是让我困惑。我想知道在Asp Net MVC中如何以及在何处使用它们。

对于Ex-如果我想使用img标签 -

img src="@Url.Content("~/Content/themes/base/images/logo.png")" alt="Koiak Basic Site" />

img src="/Content/themes/base/images/logo.png" alt="Koiak Basic Site"/> 

请解释两者之间的区别

2 个答案:

答案 0 :(得分:7)

绝对路径:

绝对网址路径。如果要引用其他位置(例如外部Web站点)中的资源,则绝对URL路径非常有用。

<img src="http://www.contoso.com/MyApplication/Images/SampleImage.jpg" />

相对路径:

站点根目录相对路径,针对站点根目录进行解析。如果将整个站点中使用的资源(例如图像或客户端脚本文件)保留在位于Web站点根目录下的文件夹中,则站点根相对路径非常有用。

以下示例路径假定Images文件夹位于网站根目录下。

<img src="/Images/SampleImage.jpg" />

更多参考: http://msdn.microsoft.com/en-us/library/ms178116.aspx

来到你的问题:

<img src="@Url.Content("~/Content/themes/base/images/logo.png")" alt="Koiak Basic Site" />

这里因为使用“〜”。它将“服务器”路径(即;您的应用程序路径)“添加到您的网址。这意味着它需要img src作为”yourapplicationPath / Content / themes / base / images / logo.png“

<img src="/Content/themes/base/images/logo.png" alt="Koiak Basic Site"/>

这里需要它。即, “/内容/主题/碱/图像/ logo.png”

有关详情,请参阅:

why use @Url.Content

http://digitalzoomstudio.net/2012/04/01/what-is-the-difference-between-absolute-and-relative-paths-urls/

What is the difference between / and ~/ relative paths?

答案 1 :(得分:1)

绝对路径

就目录而言

当我们从根目录引用某个位置时,如C:\ Documents \ MyFolder,它是绝对路径。

就网址

而言

调用绝对路径,因为它们引用了非常具体的位置,包括域名。 Web元素的绝对路径通常也称为URL。例如,绝对路径是:

http://www.stackoverflow.com/posts/21670682

相对路径

就目录而言

当我们引用我们当前所在的位置时,它被称为相对路径。例如,假设您目前在C:\ Documents中的Documents文件夹中,要引用MyFolder,您有两种选择:绝对(C:\ Documents \ MyFolder)或亲戚(\ MyFolder)。

就目录而言

相对路径根据链接所在的页面而变化。使用相对路径创建链接有几个规则:

与当前页面在同一目录中的链接没有列出路径信息

filename

列出的子目录没有任何前面的斜杠

weekly/filename

链接一个目录列为

../filename