我最近开始学习Laravel,但是有一个我不知道为什么会发生的问题。我当前的Laravel项目位于wamp/www/codebright
。访问后,localhost/codebright/public
我会看到Laravel的欢迎页面。
当我创建一个简单的路由时:
Route::get('my/page', function()
{
return "Harro world";
});
并尝试访问:localhost/codebright/public/my/page
它返回404错误,甚至没有Laravel错误。我也尝试访问:localhost/codebright/my/page
并且仍然。
但是,如果我键入CMDphp artisan serve
并在8000端口上打开服务器,然后访问:localhost:8000/my/page
它就可以正常工作。我想知道为什么没有artisan
命令的第一个方法不起作用。
提前致谢!
看来,如果您已安装XAMPP,则不会发生上面提到的以及在答案注释部分中提到的所有问题。基本上,如果您使用的是XAMPP,则很可能不会出现任何错误,并且程序可以正常运行。
确实可以做您想做的事,但是如果您不使用artisan serve
,则必须正确设置一个Web服务器。从您的原始帖子中可以明显看出,您在进入欢迎页面时已设置了一个网络服务器,但在我看来,它类似于以下内容之一:
.htaccess
适当的文件AllowOverride All
(不允许.htaccess
文件运行)mod_rewrite
开启您应该检查这些。至少,Laravel需要一种将不存在的URImy/page
转换为可以伪造页面的内容的方法()。这几乎需要使用mod_rewrite
和.htaccess
文件来指定规则。
使用Apache和artisan serve
:的区别的解释是artisan serve
不使用像Apache这样的“哑”网络服务器,而是使用内置于PHP的网络服务器,该服务器具有如何处理浏览到的“不存在” URI的知识,这就是为什么您不这样做的原因不需要mod_rewrite
和.htaccess
文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句