【发布时间】:2019-07-17 12:19:12
【问题描述】:
我已经将我的 Lumen 项目升级到 5.5 版本,并且路由似乎被破坏了。 我输入的每个 URL 都返回默认的“/”路由,定义为:
$router->get('/', function () use ($router) {
return $router->app->version();
});
当尝试点击 /example 流明时不会触发 404 错误,它只会返回我的 '/' 路由的内容。
这不是网络服务器配置问题:因为它在升级之前运行良好,并且对于运行 5.2 到 5.6 版本的其他 lumen 项目仍然运行良好。
是的,/routes/web.php 在 /config/app.php 中定义为路由文件
经过几次测试,事实证明,请求 uri 在 Lumen 中始终显示为“/”。 当我从第 156 行的“/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php”打印 $method 和 $pathInfo 时,它给了我
string(3) "GET" # for $method
string(1) "/" # for $pathInfo
所以我的问题是,我是否遗漏了文档中需要在请求类上执行的任何更改?为什么会发生这种情况?我是否需要从头开始创建一个项目并移动我的控制器?
感谢您的宝贵时间!
更新: 应 Styx 的要求,这是网络服务器配置,我对运行在不同版本上的许多 Lumen 项目使用相同的配置,并且路由对它们中的任何一个都不是问题,除了我们正在谈论的那个。
对于存放所有项目的目录:
<Directory "C:\Users\[user]\Desktop\projets">
AllowOverride all
Options Indexes FollowSymLinks ExecCGI
Order deny,allow
Allow from all
</Directory>
还有一个虚拟主机的附加指令:
<VirtualHost *:80>
DocumentRoot "C:\Users\pa.thiout\Desktop\projets\projet\public"
ServerName back
</VirtualHost>
更新:我决定拉另一个新的 5.7 Lumen 项目,然后重新安装 composer 包并移动代码。工作正常。
【问题讨论】:
-
仍然,显示您的网络服务器配置。
-
已添加到问题中。不过,我认为这不是问题的根源。