ThinkPHP include失效所发现的大小写敏感系列惨案

0x01 问题描述

TP框架写的网站移植到Linux下后,发现首页代码显示不全、部分URL失效。php

0x02 include失效

通过排查后立刻锁定应该是这行代码执行失效css

<include file="home@public:head" />

在Windows系统测试没问题的,但部署到Linux系统中就失效了。仔细观察,View层中目录首字母为大写,此处函数底层会寻找目录,Linux对大小写敏感的,改为html

<include file="Home@Public:head" />

问题解决。
不过光是这条语句,不少地方就有用到,慢慢改吧◑﹏◐,还有各个地方的URL路径也得检查一遍,是否由于大小写致使失效。markdown

0x03 URL失效

好比说Index控制器中的:框架

public function myTest() {
    $this -> display();
}

若是/View/Index目录下只有mytest.html而不是MyTest.html那么在Linux中就会找不到模板,Windows中是有效的。
还有指定视图文件的写法:函数

public function myTest() {
    $this -> display("Index:hello");
}

若是写成下面这样也会失效:测试

public function myTest() {
    $this -> display("index:hello");
}

…等等,只要涉及文件路径查找的,都要注意大小写敏感网站

0x04 深入总结

在开发过程当中,必定要注意开发规范,注意大小写敏感,即便是在Windows开发环境中也是如此,毕竟是要部署到Linux生产环境中去的。
神父,我有罪,辜负了党和人民对个人指望,下面是反省:
《卧春》
暗梅幽闻花,
卧枝伤恨底。
遥闻卧似水,
易透达春绿。
岸似绿,
岸似透绿,
岸似透黛绿。ui

【转载请注明出处: http://blog.csdn.net/leytton/article/details/79518760
PS:若是本文对您有帮助,请点个赞让我知道哦~微笑this

相关文章
相关标签/搜索