Asp.net 何时以及如何使用相对路径/绝对路径/根路径/和~/Path?

Asp.net 何时以及如何使用相对路径/绝对路径/根路径/和~/Path?,asp.net,path,Asp.net,Path,当我为我的应用程序创建文件夹结构时,将js、css和图像链接到应用程序时,我对这四个类别感到非常困惑 我听说~/Images/up.png意味着无论你在哪里,它都会进入根目录,搜索图像文件夹并给出图像。当我尝试这个…,它不起作用。我使用了../Images/up.png,它可以工作。。我使用了/Images/Images.png,它也起了作用,所以请解释一下原因。在访问自己直接域之外的内容时,您主要使用绝对路径。 因此,如果您的站点位于www.mysite.com上,并且您的图像位于images

当我为我的应用程序创建文件夹结构时,将js、css和图像链接到应用程序时,我对这四个类别感到非常困惑


我听说~/Images/up.png意味着无论你在哪里,它都会进入根目录,搜索图像文件夹并给出图像。当我尝试这个…,它不起作用。我使用了../Images/up.png,它可以工作。。我使用了/Images/Images.png,它也起了作用,所以请解释一下原因。

在访问自己直接域之外的内容时,您主要使用绝对路径。 因此,如果您的站点位于www.mysite.com上,并且您的图像位于images.mysite.com上,那么您将使用绝对路径

同样,您在内部使用相对路径。相对路径为../images/up.png。 您也可以在内部使用绝对路径,但通常您不想这样做,因为这样可以简化使用过程,不必考虑资源位于哪个域,而只考虑相对于内容的位置

至于~/那么这是一个.NET的东西,它确实意味着回到了站点的根。 然而,它需要专门使用,所以你不能只做一个正常的链接和使用~/ 它需要在服务器端解析,例如,可以使用-例如ResolveUrl~/images/up.png来解析,并使用返回的作为链接。特定控件将自动为您解析url,但仍通过.NET解析。 因此,使用它主要是因为您不必担心您所处理的页面位于根目录的多少层,因此您不必担心它当前是../images/up.png还是../../images/up.png

~是根目录

所以“~/js/fancyscript.js”的意思是回到根目录,进入js并找到fancyscript.js

“/js/fancyscript.js”意味着进入js并找到fancyscript.js。由于不总是有/js文件夹,因此这并不总是有效的

例如,这是我的项目

site
    /css
        style.css
    /js
        fancyscript.js
    /include
        view.html
    index.html
我的根文件夹中有我的索引,从这里我可以使用相对路径来包含我的脚本 “/js/fancyscript.js”

它会找到/js,它会找到我的脚本

但是当我在/include/view.html中工作时,我必须先返回1个文件夹,这样相对路径将是“../js/fancyscript.js”,在一个文件夹中进入/js并找到fancyscript.js

在我的示例中,由于js文件夹位于根目录中,我还可以使用“~/js/fancyscript.js”

绝对路径和相对路径之间的区别在于绝对路径是完整路径,相对路径是从代码执行点开始的

因此,上面显示的示例是相对路径,而absulote路径的axample是