众所周知,tp5为了安全考虑,把入口文件放在了public目录里,这也就导致了你直接打开网站的根目录是无法访问的,你只能在服务器上把域名解析,指向你项目的public目录才能直接访问你的首页,但是如果是虚拟主机的话,那就必须要更改入口文件到根目录了,当然也有很多人习惯入口文件在根目录。
tp5的官方文档把我们开发一般遇到的问题基本都可以解决了,但是这个手册啊,非常的讨厌,他有收费和不收费两种,收费的呢,解释所有的问题都通俗易懂,还有小demo帮助你来理解,实在不行照着敲都没问题,但是不收费的就尴尬了,全部都像是字典上那种超级官方的解释,只告诉你理论,至于怎么用,那就只能自己悟了。所以我分享一下更改入口文件和一些衍生问题的解决方案。
首先很简单,你在项目根目录创建一个文件,名字叫 index.php ,里面的代码是这样的(看不懂就直接复制就好):
<?php
// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 开启调试模式(这个无所谓)
define('APP_DEBUG', true);
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
然后呢,打开你的 public 目录,把里面的 index.php 删掉,还有一个叫 .htaccess 的文件剪切,注意是剪切!,然后粘贴到你的根目录,这时候你就可以直接在浏览器上访问你的网站根目录了。
还有个问题呢是你更改过入口文件之后,你原来模板也就是 html 页面中引用的 CSS 文件 JS 文件 图片什么的,路径有可能会发生一些有的没的的变化,比如我一开始引用都是用 ‘ROOT‘ 定义的路径前缀,上传到虚拟主机之前这个常量指向的是根目录下的 public 目录,上传之后就变成了整个八经的根目录了,反正这会也说不准会有些什么变数,我反正用的笨办法,在浏览器控制台看看他们现在生成的目录是什么样的,再酌情更改自己的代码,本来想直接改常量的值的,这样也不用费事了,结果对着手册找了半天没找着……
好了,大概就是这样,一些很脑残的操作,我也恬不知耻的说什么分享,希望能够帮到看到这篇文章的你吧~