1

我在 Homestead 盒子上设置了一个 Laravel 站点,所以我在sitename.app:8000. 我有一条名为“新闻”的路线,但是当我尝试前往时, sitename.app:8000/news我却奇怪地跳出了sitename.app/news/.

如果我将路由名称更改为“news2”,我可以按照正常的方式访问所需的控制器操作sitename.app:8000/news2。所以不知何故,“新闻”本身变得不合作了——而且我很确定当我尝试访问那个 url 时,我们甚至没有达到 NewsController 的程度。

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

ETA:人们一直在询问 routes.php 文件。我可以从文件中删除所有内容,除了

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

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

和 /news2 会工作,但 /news 会反弹我。所以我仍然非常相信问题比routes.php更深...

4

2 回答 2

1

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

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

对任何在“神秘地不起作用”的路线上扯头发的人的建议 - 检查您的公共文件夹是否可能发生碰撞!

于 2015-04-01T15:19:29.287 回答
0

这是一个已知问题Larvel 缺少端口

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

$_SERVER['SERVER_PORT'] = 8000;

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

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

于 2015-02-25T16:16:42.840 回答