【发布时间】:2014-09-30 07:03:50
【问题描述】:
在为我的应用程序创建文件夹结构时,将 js、css 和图像链接到应用程序时,我对这四个类别感到非常困惑..
我听说~/Images/up.png 意味着无论你在哪里,它都会进入根目录并搜索Image 文件夹并给出图像。当我尝试这个.. 时,它不起作用。我用了../Images/up.png,它可以工作.. 我用/Images/Images.png,它也可以工作,所以请解释一下原因。
【问题讨论】:
在为我的应用程序创建文件夹结构时,将 js、css 和图像链接到应用程序时,我对这四个类别感到非常困惑..
我听说~/Images/up.png 意味着无论你在哪里,它都会进入根目录并搜索Image 文件夹并给出图像。当我尝试这个.. 时,它不起作用。我用了../Images/up.png,它可以工作.. 我用/Images/Images.png,它也可以工作,所以请解释一下原因。
【问题讨论】:
在访问您自己的直接域之外的内容时,您主要使用绝对路径。
因此,如果您的网站托管在 www.mysite.com 上并且您的图片位于 images.mysite.com 上 - 您将为它们使用绝对路径。
同样,您在内部使用相对路径。相对路径是../images/up.png。
您也可以在内部使用绝对路径,但通常您不想这样做,因为它简化了使用,不必考虑资源位于哪个域,而只需考虑相对于您的内容的位置。
至于~/ 那么它是一个.NET 的东西,确实意味着回到站点的根目录。
但是它需要特别使用,所以你不能只建立一个正常的链接并使用~/
它需要在服务器端解析,例如可以使用ResolveUrl - 例如ResolveUrl("~/images/up.png") 并使用返回的链接。特定控件会自动为您解析 url,但仍通过 .NET 解析。
所以它主要是因为你不必担心你正在处理的页面是从根目录定位到多少层(所以你不必担心它当前是../images/up.png还是../../images/up.png)
【讨论】:
~ 是根
所以'~/js/fancyscript.js'的意思是回到root进入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'
绝对路径和相对路径的区别在于,绝对路径是完整路径,而相对路径是从代码执行的地方开始
所以上面显示的示例是相对路径,而绝对路径的示例是
【讨论】: