Laravel 5 包 router.php 被忽略
Laravel 5 package router.php being ignored
我已遵循有关服务提供商的 Laravel 文档,我正在尝试创建自己的 package/module。
我的包的 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 错误)。
我错过了什么?
根据你在这里所说的
I simply get a page not found error (not a Laravel error).
听起来您的 Web 服务器设置不正确。即此错误发生在高于(或低于,取决于您的观点)Laravel.
尝试加载来自
的路线
http://example.com/index.php/home
您可能会发现 Laravel 对该页面的响应很好。
PHP 像 Laravel 这样的框架通常将所有流量定向到一个 index.php
-- 有时这个文件被称为前端控制器,有时是前端加载器,有时又是一个索引引导程序。它有无数的名字。通过将所有流量定向到这个文件,框架可以实现自己的控制器调度逻辑。
如果您看到的是 网络服务器 错误页面而不是 Laravel 网页,这可能意味着
您在 public/
中缺少 .htaccess
文件
您的 Web 服务器配置为忽略 .htaccess
个文件
您的网络服务器没有安装或启用 MOD_REWRITE
模块
以上的一些组合
MOD_REWRITE
模块是允许.htaccess
文件说
的apache模块
Hey, all you requests -- don't server a file, go to index.php
instead.
其他网络服务器(如 nginx)具有用于相同目的的不同模块。如果是您,请查阅您的文档。
我已遵循有关服务提供商的 Laravel 文档,我正在尝试创建自己的 package/module。
我的包的 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 错误)。
我错过了什么?
根据你在这里所说的
I simply get a page not found error (not a Laravel error).
听起来您的 Web 服务器设置不正确。即此错误发生在高于(或低于,取决于您的观点)Laravel.
尝试加载来自
的路线http://example.com/index.php/home
您可能会发现 Laravel 对该页面的响应很好。
PHP 像 Laravel 这样的框架通常将所有流量定向到一个 index.php
-- 有时这个文件被称为前端控制器,有时是前端加载器,有时又是一个索引引导程序。它有无数的名字。通过将所有流量定向到这个文件,框架可以实现自己的控制器调度逻辑。
如果您看到的是 网络服务器 错误页面而不是 Laravel 网页,这可能意味着
您在
public/
中缺少 您的 Web 服务器配置为忽略
.htaccess
个文件您的网络服务器没有安装或启用
MOD_REWRITE
模块以上的一些组合
.htaccess
文件
MOD_REWRITE
模块是允许.htaccess
文件说
Hey, all you requests -- don't server a file, go to
index.php
instead.
其他网络服务器(如 nginx)具有用于相同目的的不同模块。如果是您,请查阅您的文档。