Laravel 5 路由异常行为

Laravel 5 Route Strange Behaviour

我在 Homestead 盒子上设置了一个 Laravel 网站,所以我在 sitename.app:8000 上访问它。我有一条名为 "news" 的路线,但是当我尝试前往 sitename.app:8000/news 时,我奇怪地跳到了 sitename.app/news/

如果我将路由名称更改为 "news2",我可以在 sitename.app:8000/news2 正常访问所需的控制器操作。所以不知何故,它 "news" 本身变得不合作 - 我很确定当我尝试访问那个 url.

时,我们甚至没有达到 NewsController 的程度

任何人都可以从这些症状中找出可能出了什么问题吗?我在某个时候所做的一项与 "news" 相关的更改是在 RouteServiceProvider 的 boot 方法中添加 $router->model('news', "App\News");,但删除它似乎并没有什么不同。

ETA:人们不断要求 routes.php 文件。我可以从字面上删除文件中的所有内容,除了

Route::get('news', function() {
    return "hello world";
});

Route::get('news2', function() {
    return "hello world";
});

和 /news2 可以,但 /news 会让我退缩。所以我仍然坚信问题比 routes.php...

更深

这是一个已知问题Larvel missing port

解决此问题的最简单方法是转至 public/index.php 并设置 SERVER_PORT 值。

$_SERVER['SERVER_PORT'] = 8000;

如果您在网站上使用链接,请不要忘记在配置中设置基数 url,url 生成器使用配置中定义的基数-url。

最后一个选项是将 VagrantFile 中的 vm 端口更改为指向端口 80,并将端口 80 用于您的应用程序。

我终于弄清楚是我的愚蠢行为导致了这种行为!

我在 /public 中创建了一个名为 "news"... 的文件夹,即与重要路线同名。不确定每次请求 /news 时,这在幕后对 Laravel 造成了什么样的破坏,但可以假设这不是什么好事。

给在 "mysteriously doesn't work" 路线上撕扯头发的人的建议 - 检查您的 public 文件夹中可能发生的碰撞!