CSS 中的相对 URL 是否真的相对于文件本身?

Are relative URLs in CSS really relative to the file itself?

我从 W3 docs 中看到:

Partial URLs are interpreted relative to the source of the style sheet, not relative to the document

其中 "document" 指的是 HTML 文档。

但是,我看到一些关于相对路径的奇怪行为。我有一个 Django 项目,我的静态文件在这个目录结构中:

static/
  css/
    stylesheet.css
  img/
    image.png

stylesheet.css 包含

.someclass {
    background: url('<path/to/image.png>')
}

令我感到奇怪的是,如果 URL 为 url('../../img/image.png'),此方法有效,但不适用于 url('../img/image.png')。后者是我期望的正确路径,基于我在 Stack Overflow (example, another example) 上看到的类似问题的所有答案——实际上,基于相对路径的一般工作方式。

为了测试这一点,我将 URL 更改为 url('img/image.png'),这会导致浏览器查找 /static/css/stylesheet.css/img/image.png.

我觉得这很奇怪。这真的是 "relative to the source of the style sheet" 的部分 URL 的意思吗? URL 是相对于 CSS 文件本身,而不是它的封闭目录?

似乎您从 /static/css/stylesheet.css/ url 提供 CSS 文件(请注意末尾的 / 斜线)。有效 url 是 /static/css/stylesheet.css