前言
最近有朋友问我有关路径的问题,说本地运行好好的,上传到服务器上,web网站里面的资源文件路径全错了。主要问题是配置域名的路径改变了,所以出现错误。
相对路径和绝对路径的区别
- web:以 / 开头的就是绝对路径,其它都是相对路径(<image src=’/images/test.png’>和<image src=’../images/test.png’>)
- php:和操作系统有关
- linux操作系统:以 / 开头的就是绝对路径,其它都是相对路径
- windows操作系统:以 盘符(C:) 开头的就是绝对路径,其它都是相对路径
php里的路径和web路径的区别
php:比如你要查看某个文件的内容,或者是引入某个php文件,这时候你访问的是当前主机的文件系统。(windows系统,你要查看d:www/test/test.txt;linux系统,你要查看/var/www/test/test.txt)
web:协议+域名+资源路径 http:www.test.com/images/test.png ,如果域名配到服务器某个目录下,那么 / 代表的就是当前目录。
例如:www.test.com 指向 linux主机下面的/var/www/test目录下。那现在访问www.test.com连接的话
- 绝对路径: <image src=’/images/test.png’>就是指/var/www/test/images/test.png文件;
- 相对路径:<image src=’./images/test.png’>也是指/var/www/test/images/test.png文件。(.代表当前路径)
例如:www.test.com 指向 linux主机下面的/var/www/test目录下。那现在访问www.test.com/index/index/index.html连接的话
- 绝对路径: <image src=’/images/test.png’>就是指/var/www/test/images/test.png文件,不会随着域名后面的部分影响;
- 相对路径:<image src=’../../images/test.png’>也是指/var/www/test/images/test.png文件,会随着域名后面的部分影响。(..代表上层)
- 注意:这里的 . 和 . . 都是相对于www.test.com和www.test.com/index/index/index.html