每当我遇到网页上图片“无法显示”的问题时,我首先要做的事情是仔细查看引用该图片的文件路径。 如果该文件路径是相对的(意味着它没有以 http:// 开头),我会额外注意引用图片的文件所在位置以及图片的实际位置。
- 图片是否与引用它的文件位于同一个目录中?
- 图片是否位于下方的目录中?
- 图片是否位于上方的目录中?
我所说的“下方”和“上方”指的是子目录和父目录。 相对文件路径提供了一种在两个方向上移动的方法。 请看我的简单示例
以下是关于相对文件路径的你需要知道的一切
- 以“/”开头表示返回到根目录并从那里开始
- 以“../”开头表示向后移动一个目录并从那里开始
- 以“../../”开头表示向后移动两个目录并从那里开始(以此类推…)
- 要向前移动,只需从第一个子目录开始,然后继续向前移动
这是一篇适合人们阅读的很好的提醒文章。 作为一个懒惰的程序员,我总是将图片放在根目录下的“grapics”文件夹中,并使用绝对路径(“/”)。 对我来说,这样做要容易得多。
谢谢。 我更喜欢将 css 文件放在根目录下,是的,我也是个懒人 :)
在Internet Explorer 中链接到过滤器和行为文件也存在一个奇怪的真相。 每个文件都必须链接,就好像它是在 HTML 文件中引用的。 这听起来可能很疯狂,但请考虑以下内容
example-ie6.css
body {
filter: (…)AlphaImageLoader(src="images/body-bg.png", sizingMethod="scale");
}
如果你将 HTML 文件放在其他位置,则无法正常工作。 在你的情况下,你应该这样写
body {
filter: (…)AlphaImageLoader(src="assets/CSS/images/body-bg.png", sizingMethod="scale");
}
如果你不知道如何构建唯一的路径,请使用
/assets/CSS/images/body-bg.png
,其中/
表示服务器的根目录。这些技巧只在 IE 中需要,只针对
filter
和behavior
(以及expression()
中的引用)。 下次我们想要在你的网站上模拟半透明徽标时,记住这一点很有帮助。 :)PS:很棒的博客,继续保持下去。 但是,如果你能区分代码和 pre,那就太好了。 如果你能做到这一点,我的评论将更加易于阅读。 谢谢。
不错,谢谢!
“//website.com/images/image.gif” 使用当前页面的协议。 如果你使用的是绝对路径,这可以正常工作,因此你的路径可以是“http://website.com/images/image.gif”、“https://website.com/images/image.gif”或其他路径。
还有一个“./”表示当前目录。
我可能是最懒惰的程序员,通常将所有图片都放在与 html 文件相同的文件夹中,我现在使用了一个 graphics 文件夹。
这与主题略有偏离,但如果此技巧不起作用,图片仍然无法显示,可能是因为它们在 Photoshop 中没有保存正确,并且是“索引格式”。
好文章,我总是会被这个问题困扰 :D
感谢你的想法,但我更喜欢将我的 css 文件夹作为根目录。
Ralph
很棒的提醒。 有时候我们做了很多事情,当出现问题时,我们倾向于认为它与更深层次的东西有关,而不是简单的文件路径。
很棒的提醒,谢谢 Chris!
我的天哪! 最简单的问题总是最大的问题…… 谢谢你的这篇文章!
路径文章中写的是 privative 而不是 primative。 我认为你应该知道。
谢谢! 已更正。