【问题标题】:Laravel / Lumen update to 5.5, routing brokenLaravel / Lumen 更新到 5.5,路由中断
【发布时间】: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 包并移动代码。工作正常。

【问题讨论】:

  • 仍然,显示您的网络服务器配置。
  • 已添加到问题中。不过,我认为这不是问题的根源。

标签: laravel routing lumen


【解决方案1】:

我知道这个话题可能有点老了,但如果有人遇到这个错误,这可能会有所帮助。

问题出在public/index.php,应该只有:

$app->run();

我在安装新的 lumen 安装 (5.5) 并像在 Git 的帮助下一样替换所有内容后发现了这一点。我在我的 public/index.php 上发现了这个巨大的差异。具有讽刺意味的是,一小段代码可以让你整个上午都放松。

作为我之前的 NOT WORKING 代码的左侧,右侧是有效的代码。

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 2018-06-23
    • 2019-04-02
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多