源代码绝对路径问题。

39

我在 C:\wamp\www\site\img 中有一张图片,我尝试使用以下代码在页面中显示它:

<img src="C:\wamp\www\site\img\mypicture.jpg"/>

但是它不起作用。文件实际上是存在的,如果我试图使用相对路径引用它,我可以看到这张图片。

<img src="../img/mypicture.jpg">

哪里出错了?我缺少什么?谢谢大家!


如果在同一台机器上,<img src="C:\\wamp\\www\\site\\img\\mypicture.jpg"/> 可能会起作用。 - KJYe.Name
1
@kjy112 不行。请看 @Luke 的回答。 - rlb.usa
1
如果它在同一台本地机器上,应该可以工作。@rlb.usa - KJYe.Name
我完全是编程和网页设计的新手。我来到这里是因为我遇到了与问题描述相同的问题。我的图片在C盘以外的另一个磁盘中,所以它无法工作。经过一些研究,并查看地址栏,我注意到有一些额外的斜杠,现在我可以看到图片在它应该在的地方。如果有人觉得有用的话: <IMG SRC="file:///D:/img/smiley.gif"> 哦,顺便说一下,我想没有'localhost',因为我没有使用它,HTML文件在同一磁盘上,但它还没有-放在服务器上(嘿,不知道怎么做!= D)。感谢大家。 - Robergto
5个回答

18
你应该使用 localhost 作为引用。像这样:

<img src="http:\\localhost\site\img\mypicture.jpg"/>


1
谢谢,我使用了您的建议,但是用正斜杠,现在我有了我的图片...但我想知道为什么例如我的CSS引用“c:\wamp\www\site\css\mycss.css”也能工作? - luca
8
URL中不要使用反斜杠。 - leonbloy
5
(晚了点留言,我知道)之所以出现问题是因为协议不正确,不存在 C: 协议。如果你真的想要的话,可以使用 file:// 协议(不一定是 http://localhost),并且像leonbloy所说的那样不要使用反斜杠。请注意,这里不需要解释,我的任务只是翻译。 - Teodor Sandu
有没有办法我能够捕捉或知道图片是否损坏? - Muneem Habib
@MuneemHabib 在这里看 https://dev59.com/tHVD5IYBdhLWcg3wGHeu - rlb.usa

13

<img src="file://C:/wamp/www/site/img/mypicture.jpg"/>


12

我认为由于C盘会在客户端电脑上被看到,所以它不会允许你这样做。如果可以这样做,那将会是一个巨大的安全漏洞。


你是什么意思?请解释一下。 - luca
如果你从C盘引用东西的话,首先文件需要位于每个人电脑上相同的位置。我不是说你想做的事情有多大漏洞,但是想象一下,如果你能够通过链接到C根目录来启动命令提示符。 - Luke Duddridge
我明白了,Luke,谢谢!现在我想知道为什么我使用我的“C驱动器”引用相同的CSS文件时没有遇到同样的问题。 - luca
1
你可能需要进行一些研究,但我认为这与页面的呈现方式有关,头部部分定义的对象在页面加载之前就被呈现了,因此尽管你要求 c:\xxx.css,它实际上被视为在服务器上找到,我可能说得有点含糊不清 :)。我还有另一个建议,如果你想要绝对链接,可以通过以下方式引用你的图片从你的 IIS 的根目录:src="/site/img/mypicture.jpg" - Luke Duddridge

2

使用正斜杠。

详见此处解释。


1

首先在任何网络浏览器中打开图像。然后复制路径并将其添加为图像源位置,如下所示:

src="file:///C:/wamp64/www/site/img/mypicture.jpg"

2
目前你的回答不够清晰,请编辑并添加更多细节以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community
文件路径应该是相对路径,不包括驱动器路径。 - Dipten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接