ThinkPHP3.2.3設置404跳轉頁面
在ThinkPHP3.2版本中當我們訪問不存在的頁面時會出現(xiàn)錯誤提示頁面:
error.png
解決辦法:
1.在ThinkPHP3.2詳細的介紹了該框架下的ThinkPHP慣例配置文件convention.php(文件位置:根目錄/ThinkPHP/Conf/convention.php)院仿,里面列出各類配置類。
在該文件下可以看到:
'TMPL_EXCEPTION_FILE'? =>? THINK_PATH.'Tpl/think_exception.tpl',// 異常頁面的模板文件
'ERROR_PAGE'? ? ? ? ? ? =>? '', // 錯誤定向頁面
2.只要在根目錄/Application/Common/Conf/config.php 文件中加入以下:
'TMPL_EXCEPTION_FILE'? =>? './404.html',// 異常頁面的模板文件
'ERROR_PAGE'? ? ? ? ? ? =>? './404.html', // 錯誤定向頁面
引導用戶輸入錯誤的url路徑全部跳轉到404.html頁面即可。
/*****如果配置好但出不來效果镇防,試著把緩存Runtime刪了谎僻。
這里面玷室,404.html路徑是大問題俏扩,費了好久的時間才弄好花颗。
1號坑:開始我把404放在common模塊下丈积,但訪問不了筐骇。才記起來,Common模塊和普通模塊一樣江滨,可以添加控制器铛纬、模型和視圖,并且支持多層唬滑,但不能直接訪問告唆,只能繼承,其中模型層可以作為公用模型晶密,在D方法實例化中調用擒悬。
2號坑:然后我把404頁面放在了Public資源文件夾下。頁面里引用的css和image失效了稻艰。試了好幾種路徑常量__PUBLIC__懂牧,包括在config里定義IMG和CSS的模版常量,都不行尊勿。 然后用最原始的路徑僧凤,結果成功了。 我沒有在網上搜到具體的原因元扔,但我猜測躯保,404頁面直接被TMPL_EXCEPTION_FILE使用,并沒有被TP渲染摇展,所以路徑常量沒被解析吻氧。