我已经关注了有关服务提供商的Laravel文档,我正在尝试创建自己的包/模块。
我的包的router.php文件被完全忽略了,但是我可以用启动和注册函数来编写dd():
abstract class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
public function boot()
{
if ($module = $this->getModule(func_get_args())) {
include __DIR__.'/'.$module.'/routes.php';
}
$this->loadViewsFrom(__DIR__.'/'.$module.'/Views', 'core');
}
public function register()
{
if ($module = $this->getModule(func_get_args())) {
}
}
public function getModule($args)
{
$module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;
return $module;
}
}
在我的app / Modules / Core / router.php中:
Route::get('/test', function(){
return 'hello';
});
我只是找不到页面错误(不是Laravel错误)。
我错过了什么?
答案 0 :(得分:0)
根据你在这里说的话
我只是找不到页面错误(不是Laravel错误)。
听起来您没有正确设置Web服务器。即此错误发生在高于(或低于,取决于您的观点)Laravel的水平。
尝试从
加载路线http://example.com/index.php/home
你可能会发现Laravel对该页面的反应很好。
像Laravel这样的PHP框架通常会将所有流量定向到单个index.php
- 有时这个文件称为前端控制器,有时称为前端加载器,有时也称为索引引导程序。它有无数的名字。通过将所有流量引导到这个文件,框架可以实现自己的控制器分派逻辑。
如果您看到 Web服务器错误页面而非Laravel网页,则可能意味着
您错过了.htaccess
public/
文件
您的网络服务器已配置为忽略.htaccess
个文件
您的网络服务器没有安装或启用MOD_REWRITE
模块
上述
MOD_REWRITE
模块是允许.htaccess
文件说出的apache模块
嘿,您提出的所有请求 - 不要为文件提供服务,请转到
index.php
。
其他Web服务器(如nginx)具有不同的模块用于相同目的。如果是那样,请查阅您的文档。