如何在 HTML 中的 URL 的 src 路径中上一层楼?

Posted

技术标签:

【中文标题】如何在 HTML 中的 URL 的 src 路径中上一层楼?【英文标题】:How to go up a level in the src path of a URL in HTML? 【发布时间】:2011-06-16 04:55:36 【问题描述】:

我将样式表存储在 root/styles 中,而图像存储在网站的 root/images 中。 如何在样式表中提供路径以在图像目录中查找指定图像?

例如在background-image: url('/images/bg.png');

【问题讨论】:

【参考方案1】:

如果您将样式表/图像存储在一个文件夹中以便多个网站可以使用它们,或者您想在同一服务器上的另一个站点上重复使用相同的文件,我发现我的浏览器/Apache 不允许我转到网站根 URL 上方的任何父文件夹。出于安全原因,这似乎很明显 - 除了指定的 Web 文件夹之外,不应在服务器上浏览任何地方。

例如。不起作用:www.mywebsite.com/../images

作为一种解决方法,我使用符号链接:

进入 www.mywebsite.com 的目录 运行命令 ln -s ../images images

现在 www.mywebsite.com/images 将指向 www.mywebsite.com/../images

【讨论】:

什么是符号链接? “符号链接(也称为符号链接)是 Linux 中的一种文件,它指向您计算机上的另一个文件或文件夹。符号链接类似于 Windows 中的快捷方式。有些人称之为符号链接”软链接”——Linux/UNIX 系统中的一种链接——与“硬链接”相对。”——来自freecodecamp.org/news/…【参考方案2】:

假设你有以下文件结构:

-css
  --index.css
-images
  --image1.png
  --image2.png
  --image3.png

在 CSS 中,您可以访问 image1,例如,使用行 ../images/image1.png

注意:如果您使用的是 Chrome,它可能无法正常工作,并且您会收到找不到文件的错误消息。我遇到了同样的问题,所以我只是从 chrome 中删除了整个缓存历史记录,它就成功了。

【讨论】:

【参考方案3】:

在 Chrome 中,当您从某个 HTTP 服务器加载网站时,绝对路径(例如 /images/sth.png)和某些上层目录的相对路径(例如 ../images/sth.png)都可以工作。

但是!

当您从本地文件系统加载(在 Chrome 中!)html 文档时,您无法访问当前目录之上的目录。 IE。您无法访问 ../something/something.sth 并将相对路径更改为绝对路径或其他任何内容都无济于事。

【讨论】:

重新检查后,我可以报告本地文件系统相对路径使用 ../ 可以正常工作 - 或者至少在这种特定情况下可以正常工作! 它确实适用于 linux 和 windows,而不适用于 mac(我的经验) 链接不计算在内,因为它们没有同源检查。此外,这个答案已有 6 年历史,因此浏览器可能发生了很大变化。【参考方案4】:

以下是您需要了解的有关相对文件路径的所有信息:

开始于/返回根目录并从那里开始

开始于 ../ 向后移动一个目录并从那里开始

起始于 ../../ 向后移动两个目录并从那里开始(依此类推...)

要前进,只需从第一个子目录开始,继续前进。

点击here了解更多详情!

【讨论】:

【参考方案5】:

使用..表示父目录:

background-image: url('../images/bg.png');

【讨论】:

我在其他地方也读到过——但它不起作用! (至少在 Chrome 中) 确实如此。但是请注意,该位置是相对于 CSS 文件的位置,而不是嵌入 CSS 文件的文档。 @ThiefMaster 如果我们只使用内联 CSS 应该是这样【参考方案6】:

使用../:

background-image: url('../images/bg.png');

您可以随意使用它,例如../../images/ 甚至在不同的位置,例如../images/../images/../images/(当然和../images/一样)

【讨论】:

以上是关于如何在 HTML 中的 URL 的 src 路径中上一层楼?的主要内容,如果未能解决你的问题,请参考以下文章

img如何接收jquery ajax异步上传的动态图片

图片有绝对路径 - 如何在 Laravel Mix 中使用子目录 URL

如何修复Django添加URL路径中的错误,找不到未链接到新代码

html 中img标签中src属性放绝对路径不能显示?

外联css样式表中应该如何 写background-image: url()中的图片路径呢 ? 这里我对相对路径不是很明白。把一

html5如何更改video的src属性