ThinkPhp关闭Debug后出错解决方案
注:我使用的是ThinkPHP的3.2版本,其他版本类似
从自己入手PHP开发以来,一直使用的是ThinkPHP的框架,前几天偶然间碰到了一个错误,在Debug模式下网站一切正常,而关闭Debug进行部署的时候有些页面却出现了错误无法执行,自己也是百思不得其解,经过自己的各种尝试终于还是找到了错误原因.
·先贴出来一个简单的错误原型
<?php
namespace Home\Controller;
use Think\Controller;
class testController extends Controller
{
public function index(){
echo "Test";
}
public function show(){ }
}
检查一下上面代码的语法,可以看出控制器内就只有两个简单的函数,语法上根本就没有错误!
① 我们开启Debug测试:
输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,显示出了Test文字,一切正常:

② 我们关闭Debug在测试
输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,“页面错误!请稍后再试~”直接挂了…

当时出现这种情况的时候我也纠结了,我尝试着把代码中的函数一个一个清空,结果关闭Debug后还是出错,后来我想到了是不是函数名字的问题,结果误打误撞还真是这个问题,在上面的错误代码中我使用了一个名字为show的函数,当我们把show函数改成其他名字的时候,例如show1(),问题就解决了233
·解决方案
在上面的错误原型分析中我们可以看出,这种错误是由于你的函数命名的问题,我们自己的Controller是继承自ThinkPHP的Controller,当你在自己的Controller中的函数命名与ThinkPHP中的Controller类内函数有重名的时候,就会出现Debug下正常,关闭Debug就挂掉的现象.
所以总的来说,在我们自己的Controller中要避免使用与ThinkPhp中的Controller类有重名的函数名,这样关闭Debug出错的问题就解决了.
//注意重名函数有: show();
redirect();
·附上ThinPHP的Controller类的位置
/ThinkPHP/Library/Think/Controller.class.php
在使用一些常用的函数名的时候最好去瞄瞄那个Controller类里面是否有了.
原文章地址:http://www.youranshare.com/blog/sid/46.html
ThinkPhp关闭Debug后出错解决方案的更多相关文章
- Django 关闭Debug后使用Nginx做静态文件的访问
Django 关闭Debug后使用Nginx做静态文件的访问 关闭Django 的Debug参数 1 . 修改settings.py配置文件 DEBUG = False 2 . settings.py ...
- django关闭debug后,静态文件的处理
Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...
- django关闭DEBUG后 static静态文件都访问不了
Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...
- django在关闭debug后,admin界面 及静态文件无法加载的解决办法
当debug为true的时候,ALLOWED_HOSTS是跳过不管用的.所以这里需要将debug关掉,令debug=false,ALLOWED_HOSTS=[ '*' ]表示所有的主机都可以访问 开启 ...
- 设置Django关闭Debug后的静态文件路由
Django在Debug模式关闭掉后请求静态文件时,返回404相应码,后台的请求url是"GET /static/css/404.css HTTP/1.1" 404 1217,找不 ...
- Django项目关闭debug模式后,静态文件无法加载的解决办法
开启内置服务器,由于项目中local_settings.py文件中的DEBUG=True,进行开发和调试一直没什么问题. 但是现在需要编写404,500等出错页面,在debug模式下出了错都会出现报错 ...
- thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错
thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错,开启调试模式,不报错,怎么解决? 查看Logs日志记录: [ --29T09::+: ] 113.108.11 ...
- Struts2添加了<s:debug>后页面无效果的解决方案
一.环境 Struts2版本 struts2.5 二.问题 在jsp页面中添加了<s:debug>后页面上无任何展示. 三.解决 在struts.xml中的struts节点下添加如下常量即 ...
- 解决ThinkPHP关闭调试模式时报错的问题汇总
解决ThinkPHP关闭调试模式时报错的问题汇总 案例一: 最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 "页面调试错误,无法找开页 ...
随机推荐
- HTML5 使用FileReader实现调用相册、拍照功能
HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...
- vscode运行前端代码
vscode 可安装静态web服务器 Live Server用于运行前端代码,方便调试.最新的 Live Server已支持php动态页面. 安装方法是,点击左侧第五个图标,打开"扩展&q ...
- 基于vue2+vuex+vue-router+sass+webpack的网易云音乐
[本博客为原创:http://www.cnblogs.com/HeavenBin/] 前言: 这段时间写的一个项目,供给大家互相学习,有什么疑问可以issues我. 源码地址:https://git ...
- 入门干货之用DVG打造你的项目主页-Docfx、Vs、Github
由于这三项技术涉及到的要点以及内容较多,希望大家有空能自己挖掘一下更多更深的用法. 0x01.介绍 VS,即VS2017以及以上版本,宇宙最好的IDE,集成了宇宙最有前景的平台,前阶段也支持了宇宙最好 ...
- web前端经典面试题大全及答案
阅读目录 JavaScript部分 JQurey部分 HTML/CSS部分 正则表达式 开发及性能优化部分 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在 ...
- mac 上安装服务,查看服务,重启和关闭
首先了解下的Mac的 homebrew ,官网:https://brew.sh/index_zh-cn.html 简单的说: Homebrew 能干什么? 答:使用 Homebrew 安装 Apple ...
- main函数是主线程吗
1.线程的概念: 线程是程序最基本的运行单位,而进程不能运行,所以能运行的,是进程中的线程. 2.线程是如何创建起来的: 进程仅仅是一个容器,包含了线程运行中所需要的数据结构等信息.一个进程创建时,操 ...
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- 【JavaScript的引入方式】
javascript: 是基于对象和事件驱动的客户端脚本[组成] Bom:浏览对象模型(与浏览器交互的方法和接口) Dom:文档对象模型(处理网页内容的方法和接口) ecma:核心(描述了js的语 ...
- gulp的流与执行顺序
gulp的关键在于流,这从它的logo就能看出来. 在node中,流是操作文件时一个重要的概念.流是指什么呢?它包含两个含义:“水流”和“流水”. 水流蕴含了源源不断或是一股一股那样流过的意味:而流水 ...