我编写了这段代码,但是无法获取html。我不知道为什么我想知道为什么这是正确的路线。
<img id = "navLogo" src = "C:/Bitnami/wampstack-7.1.27-0/apache2/htdocs/TermProject/imgs/navLogo.jpg"></img>
答案 0 :(得分:1)
出于安全原因,网站可能不会从您计算机的文件系统中请求任意文件。
请记住,此方法的工作原理是将HTML发送到浏览器,然后浏览器再次发送图像请求。
在这种情况下,浏览器将尝试从您的计算机上删除文件((可能恰好是网络服务器运行的位置),但是如果此站点位于网络上并且有人访问过,则他们的浏览器将尝试从该用户的计算机上获取此图片,而不是从网站上获取。
如果允许浏览器提供本地文件系统中的文件,则可以很容易地创建一个站点来从您的计算机上抓取文件并将其传输到其他地方,从而造成巨大的安全性问题。
要解决此问题,您应该指定相对于Web服务器根目录的路径,这可能意味着:
<img src="/imgs/navLogo.jpg" />
或者也许:
<img src="/TermProject/imgs/navLogo.jpg" />
请注意,如果您是从文件系统(位置为file:…
)加载HTML文件,则与从Web服务器(位置为http://…
)为其提供HTML文件的行为有所不同。我假设您的图片是在apache目录下,因此您在这里做前者。
答案 1 :(得分:0)
雷·哈特菲尔德(Ray Hatfield)的回答很好,但我没有足够的代表发表评论。
我认为您在这里误解了绝对路径和相对路径。
您认为绝对是从c:驱动器开始,但是在Web服务器上,绝对路径始于站点的根目录,该目录始终只是一个正斜杠“ /”。
相对路径从指定它们的源文件的当前目录开始。
它们在文件系统中的位置都不能超过站点的根文件夹。
简单地说(专门回答“如何指定绝对路径?”):
网络上的所有绝对路径均以/
开头网络上的所有相对路径都不是。
给出示例中的路径:
C:/Bitnami/wampstack-7.1.27-0/apache2/htdocs/TermProject/imgs/navLogo.jpg
默认的apache安装会将站点根目录视为此路径中的“ htdocs”。
这意味着您的网站上的绝对路径/位于硬盘驱动器上的C:/Bitnami/wampstack-7.1.27-0/apache2/htdocs/中。
如果您有文件C:/Bitnami/wampstack-7.1.27-0/apache2/htdocs/TermProject/index.html,则可以从该页面访问navLogo图像
的绝对路径为:
/TermProject/imgs/navLogo.jpg
或位于的相对路径(请注意缺少正斜杠):
imgs/navLogo.jpg
答案 2 :(得分:0)
我相信您指定的源应该具有从html所在文件夹开始的路径。因此,请尝试类似"/imgs/navLogo.jpg"
的事情。