【问题标题】:Background image url() works on live server but when I open the index.html in the browser it doesn't?背景图片 url() 可以在实时服务器上使用,但是当我在浏览器中打开 index.html 时却不行?
【发布时间】:2021-07-13 22:17:04
【问题描述】:

该元素被正确选择,因为其他属性适用。没有控制台错误。

我试过了:

  1. img/hero.jpg - 当我点击 VS Code 中的链接时有效
  2. /img/hero.jpg - 点击时有效
  3. ../../hero.jpg - 当我点击时工作
  4. ../img/hero.jpg - 不起作用
  5. 完整路径 - 当我点击时有效

problem 出现在这里。可以看到 src 属性调用的图片起作用了。

Here is the file structure.

【问题讨论】:

  • 请分享你的代码..

标签: html css sass


【解决方案1】:

老实说,我不明白你的设置/问题,但我认为如果你能更好地理解相对 URL 的工作原理,你可以自己弄清楚。

在您的服务器上,您的文件位于类似的位置,

/var/www/html/index.html
/var/www/html/css/styles.css
/var/www/html/img/background.png

在您的计算机上,您的文件位于类似的位置,

C:\Users\Nani\Desktop\Website\index.html
C:\Users\Nani\Desktop\Website\css\styles.css
C:\Users\Nani\Desktop\Website\img\background.png

在你的 styles.css 中有这样的东西,

body {
    background-image: url('/img/background.png');
}

/ 开头的URL 告诉浏览器将其解释为根目录。在 Windows PC 上为C:\,在 Linux PC 上为/

但是,当您从诸如https://example.com 之类的网址在线访问该页面时,根目录将变为https://example.com/

因此,使用/img/background.png 将使其在在线时查找https://example.com/img/background.png 的图像,但在您的本地计算机上它将查找C:\img\background.png 的图像

像这样以不带斜线的 URL 开头,img/background.png 会查找相对于 css 文件所在文件夹的图像。因此,在这种情况下,在线它会在 https://example.com/css/img/background.png 和您的本地机器,它将在C:\Users\Nani\Desktop\Website\css\img\background.png中查找

在我的示例中,最好的解决方案是使用../img/background.png,它将查找相对于css 文件夹的一个目录,然后在img 文件夹中查找。这将在您自己的计算机上和上传后始终如一地工作。

假设问题是声明 url 路径的方式,这应该足以弄清楚您需要做什么。否则,问题可能出在其他问题上。例如,您似乎正在使用 SCSS。可能 SCSS 没有在您的本地机器上编译(或者有一段时间没有编译),但它是在实时服务器上编译的?

【讨论】:

  • 嗯,是的,它是 ../img/background.png 我不知道为什么它以前不起作用,但是非常感谢您的回答
【解决方案2】:

它可以在实时服务器上运行,因为它的设置使 index.html 的位置成为您文档的根 (/)。当您直接打开 index.html 时,您的根目录不同,并且如果您以 / 开头的路径,则不会从正确的位置加载图像。

Best Practice

最好使用相对文件路径(如果可能)。

使用相对文件路径时,您的网页不会绑定到您当前的基本 URL。所有链接都可以在您自己的计算机 (localhost) 以及您当前的公共域和未来的公共域上工作。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,结果我写错了路径。您必须根据 css 文件的位置而不是索引文件的位置来编写 url。因为读取url的是css文件。所以它应该是这样的:

    body {background-image: url('../img/background.png');}

    因为您的 CSS 和 IMG 位于不同的文件夹中。

    【讨论】:

    • 建议:添加代码围栏和语言标识符以突出显示css代码并使其更具可读性。
    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2015-08-15
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2021-08-30
    相关资源
    最近更新 更多