Linux文件路径中所有目录名必须都存在 而Windows不

本文发布时间: 2019-Mar-22
Linux文件路径中所有目录名必须都存在,而Windows不需要Linux文件路径中所有目录名必须都存在而Windows不需要 问题由来 原因分析 一点思考问题由来昨天部署一个基于ThinkPHP3.1开发的网站,其开发者的开发测试环境为Windows+Apache+PHP。部署到Linux+Apache+PHP下面时不能运行,查看日志提示页面模板不存在。模板不存在[./Web/Tpl/Home/Index/../index.html]事实是./Web/Tpl/Home/index.html这个文件确实存在,而且读写权限设置正确。但是,./Web/Tpl/Home/Index 这个目录是不存在的,虽然最终的路径结果都是同一个index.html文件,但是使用的中间路径写法不同。原因分析通过测试发现,在Linux平台,./Web/Tpl/Home/index.html 可以访问,而./Web/Tpl/Home/Index/../index.html 却不能访问,提示不存在文件。这一点可以在命令行下测试:[root@centos192 htdocs]# ll ./Web/Tpl/Home/Index/../index.htmlls: 无法访问./Web/Tpl/Home/Index/../index.html: 没有那个文件或目录[root@centos192 htdocs]# ll ./Web/Tpl/Home/index.html-rw-rw-r-- 1 apache apache 11459 3月 23 15:27 ./Web/Tpl/Home/index.html[root@centos192 htdocs]#而在Windows平台下,这两个路径都可以访问。C:UserssmstongDesktophtdocs>attrib ./Web/Tpl/Home/index.htmlA C:UserssmstongDesktophtdocsWebTplHomeindex.htmlC:UserssmstongDesktophtdocs>attrib ./Web/Tpl/Home/Index/../index.htmlA C:UserssmstongDesktophtdocsWebTplHomeindex.html可见,Linux和Windows系统对路径的处理有些不同,相比来说,Linux更加严谨一些。一点思考如果项目需要跨平台运行,在开发时就应该考虑到不同OS的差异,发布之前,在多种平台都要测试通过。对于这个网站系统来说,除了这个问题,还存在文件路径大小写不区分的情况,可见其开发测试人员没有基本的跨平台考量。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:09pm
栏目列表