虚拟主机部署后 controller 函数无法执行,日志不输出?但本地有日志。
简介
我是laravel小白,部署到虚拟主机后,路由不好使?请指教
目的条件
- 本地环境为:homestead,php7.0,laravel5.5,sqlite,phpstorm
- 服务器环境:BCH百度虚拟主机,设置php7.3,nginx
- 本地建立BlogController,entry函数,显示列表,最终希望显示在虚拟主机,代码如下:
web.phpRoute::match(['get', 'post'], 'blogList', "Web\BlogController@entry")->name('blogList');
BlogController.phppublic function entry(){ Log::info("blogList路由:Web\BlogController@entry**********************************"); return view('blog.list')->with('multi',Blog::all()); }
welcome.blade.php
<a href="{{route('blogList')}}">My BLOG</a>
结果
- 本地显示首页,正常显示列表,正常添加数据,日志显示正常
- 虚拟主机可以显示首页,不显示列表,提示404找不到
分析
我认为是虚拟主机路由的问题,因为在RouteServiceProvider.php中显示日志,在BlogController.php中不显示日志。代码如下:
RouteServiceProvider.php
protected function mapWebRoutes()
{
Log::info("RouteServiceProvider路由:mapWebRoutes**********************************");
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
BlogController.php
public function entry(){
Log::info("blogList路由:Web\BlogController@entry**********************************");
return view('blog.list')->with('multi',Blog::all());
}
最终虚拟主机只显示了:
[2020-01-31 06:56:09] production.INFO: RouteServiceProvider路由:mapWebRoutes**
希望大佬们指教,少量思路也可
@Nick 谢谢大佬,找到答案了,以下为参考链接,找了一个星期
https://cloud.baidu.com/doc/BCH/s/6k5gjeha...
https://segmentfault.com/a/119000000993734...
踩坑步骤:
1、阅读了Illuminate\Routing下路由的源码
2、后来得到路径/home/bae/app
3、后来找到百度官方虚拟主机文档和网上的关于laravel参考
结果:发现是nginx配置路由问题