web开发中html和php文件的路径问题

   对于刚刚入门php+mysql进行web开发的人员来说,经常会出现一些路径的小问题,同时肯定会很多人对这些路径问题感到很困惑,为何我在html文件中这样子写的路径能用,但是为什么在php文件中这样子写路径却出现报错呢?

一般的情况来说,web开发的入门都是从学习html开始的,学习如何使用html来写页面。html代码在任意的文本编辑器下面都可以进行编写,只要保存的文件扩展名必须为.htm , .html即可。如果要查看我们自己写的html文件时,只需要直接双击,浏览器就会自动打开。


File Protocol

   假如,在我的windows系统下的F分区的www目录下有一个test.html文件,那么我需要浏览我这个文件的效果,双击,windows默认是IE浏览器打开的。现在我们需要关注的地方就是浏览器中的URL地址栏,你会看到地址栏中的地址是F:\www\test.html(针对我当前F:\www\test.html文件来说的)。右键点击浏览器,选择"属性"。打开的窗口截图如下:

图片中红框处,分别是浏览器打开文件使用的协议-File Protocol和打开文件的地址-file:///F:/www/test.html

 使用firefox,chrome测试之后,URL地址栏中的地址都是:file:///F:/www/test.html。双击打开html文件,浏览器是默认以File Protocol协议打开的,那么你的html文件中使用路径的话,那么你的路径必须遵守File Protocol。在windows系统下,你要在html文件中引用图片等,你可以从当前的html文件出发走相对路径,我的www目录下有一个1.jpg。我要在test.html中使用,那么可以这样子写

<img src="./1.jpg" alt="yaoqiu" title="yaoqiu"/><!--(相对路径)-->

,也可以写成

<img src="F:/www/1.jpg" alt="yaoqiu" title="yaoqiu"/><!--绝对路径-->

。也许有人要问关于windows下跨分区调用的问题,这个我没有研究,有人了解的可以给留言。

注意:windows中文件的路径中,一般使用的是右斜线(\),也可以用左斜线(/),Linux下只能识别左斜线(/)。

HyperText Transfer Protocol

   搭建好php开发使用的Apache+php Web服务器环境之后,通过客户端浏览器向web服务器发送请求localhost/test.html,我已经将F:/www目录设置作为Web服务器的根目录。如果你想要在test.html中引用目录下的1.jpg图片话,你可以写成相对路径的形式,代码:

<img src="./1.jpg" alt="relative_path" title="relative_path"/>

,也可以写成HyperText Transfer Protocol协议的绝对路径形式,代码:

<img src="http://localhost/1.jpg" alt="absolute_path" title="absolute_path"/>

如果你是在通过HypertText Transfer Protocol请求的html文件中,使用File Protocol的绝对路径是无法被HyperText Transfer Protocol所解析的,也就是说HyperText Transfer Protocol和File Protocol各自对应的绝对路径是不相同的。相信大家都发现了一点,那就是在HyperText Transfer Protocol和File Protocol中相对路径都是可以使用的,并且是通用的。为什么呢?我个人的理解,因为相对的都是同一个文件,即是同一个点。以一个生活的例子来形容,高考那么多的考生,而且当中肯定有各种各样的特长,例如:乒乓球,或者什么奥林匹克数学奖之类,但是高考的录取百分之九十就是相对于那个录取分数线来说的。因为参照物相同了,自然相对路径就相同了!

   通过向web服务器发送请求,所获取到的页面,右键点击页面->属性,截图如下:

本文出自 “我很菜” 博客,谢绝转载!

你可能感兴趣的:(http,File,protocol,protocol,Path,Path,absolute,relative)