标签:解决办法 www http index Action thinkphp php Think 加载
原文地址为: http://github.crmeb.net/u/defu
前台入口文件index.php
<?php //前台入口 define('_PATH', '../ThinkPHP/');//底层的位置 define('APP_PATH', './home/');//定义项目位置 define('APP_DEBUG', true);//定义DEBUG开关 require_once THINKPHP_PATH.'ThinkPHP.php'; //echo 'hellow'; ?>
配置文件:
1 <?php 2 return array( 3 //'配置项'=>'配置值' 4 'DEFAULT_C_LAYER' => 'Controller', // 默认的控制器层名称 5 'URL_MODEL' => 1, // URL访问模式,可选参数0、1、2、3,代表以下四种模式: 6 ); 7 ?>
Controller下的IndexController.class.php文件:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 class IndexController extends Controller { 5 public function index(){ 6 echo "hello world"; 7 } 8 }
浏览器调试结果:
这个路径http://localhost:8080/test/index.php是可以显示控制器方法中的欢迎信息的,
而http://localhost:8080/test/index.php/index和http://localhost:8080/test/index.php/index/index却提示了错误信息
:(
无法加载模块:Index
错误位置
FILE: C:\wamp\www\ThinkPHP\Library\Think\Dispatcher.class.php LINE: 172
TRACE
#0 C:\wamp\www\ThinkPHP\Library\Think\Dispatcher.class.php(172): E('???????????????...')
#1 C:\wamp\www\ThinkPHP\Library\Think\App.class.php(36): Think\Dispatcher::dispatch()
#2 C:\wamp\www\ThinkPHP\Library\Think\App.class.php(184): Think\App::init()
#3 C:\wamp\www\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#4 C:\wamp\www\ThinkPHP\ThinkPHP.php(96): Think\Think::start()
#5 C:\wamp\www\test\index.php(7): require_once('C:\wamp\www\Thi...')
#6 {main}
然后百度得知,开启了DEBUG调试模式后,控制器路径名要严格区分大小写。
顿悟,修改地址为:http://localhost:8080/test/index.php/Index和http://localhost:8080/test/Index.php/index均还是一样的问题。
遂查阅官方手册是可以修改不区分大小写的:
在配置文件中加上一句话:'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写。
试了下,还是不行!
想了想,是不是Controller的问题,继续查阅手册。得知
自从3.2之后thinkphp默认的控制器不再使用Action,而是使用了更贴近MVC模式的Controller。
如果你原来习惯用了Action,还是可以吧Controller修改成Action的
可以这样定义:
1 namespace Home\Action; 2 use Think\Action; 3 class IndexAction extends Action{}
然后,在配置文件config.php中,设置:
1 'DEFAULT_C_LAYER'=>'Action'
遂,把Controller修改成Action,还是一样的问题,我的天!
继续百度!
发现发现别人的目录结构和我的好像不一样!
仔细查看代码
1 define('APP_PATH', './home/');//定义项目位置
发现3.1生成的home项目目录下并没有Home目录
而3.2生成的home项目目录却多了一层Home目录
因此我们在URL地址上必须加上Home目录,也就是:http://localhost:8080/test/index.php/Home/Index/index(文件入口[index.php]/Home[默认]/控制器名[Index]/方法名[index])
浏览器粘贴访问,终于显示出那诱人可爱的hellow world
转载请注明本文地址: http://github.crmeb.net/u/defu
标签:解决办法,www,http,index,Action,thinkphp,php,Think,加载 来源: https://blog.51cto.com/u_15128235/2700835
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。