Laravel 路线根本不起作用
Posted
技术标签:
【中文标题】Laravel 路线根本不起作用【英文标题】:Laravel routes do not work at all 【发布时间】:2016-02-24 21:36:10 【问题描述】:我的 laravel 路线根本不起作用。我尝试过这样的事情:
Route::get('welcome', function ()
return View::make('welcome');
);
使用 localhost/project/project/public/welcome 访问它可以正常工作。我已经以多种方式进行了尝试,但似乎路由无法正常工作,因为 localhost/project/welcome 显示 404 错误。我知道有类似的话题,但我没有答案。有人可以帮帮我吗?
我的 htaccess 文件是这样的(我从来没有碰过它):
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
【问题讨论】:
【参考方案1】:您需要编辑您的 HTTP 服务器以将文档根目录设为 project/project/public/
例如在 Apache 中,你可以这样做:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/project/project/public/
在 nginx 中它会这样:
server
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/project/project/public/;
【讨论】:
感谢您的回答!它只是 httpd.conf 文件吗? 取决于您的服务器配置。您可能会在 /etc/apache2/sites-available 或 /etc/nginx/sites-available 下找到它 我用的是xampp,会搜索一下 对于 XAMPP 我认为是 httpd.conf 哦,终于出事了,但我现在没有权限打开这个页面 XD【参考方案2】:你说过你可以通过tlocalhost/project/project/public/welcome
访问你的laravel应用。这是因为此路径是您的起始根路径,即您启动应用程序的位置。
允许您访问新路线的示例
Route::get('other_route', function ()
return View::make('welcome');;
);
如果您在浏览器中输入localhost/project/project/public/other_route
,则可以访问此代码
localhost/project/welcome
将不起作用,因为您的应用程序比此路径更深。
您应该为您的应用程序设置虚拟主机,以便您的路径可以是myapp.local/welcome
myapp.local/other_route
或者访问你的应用,假设你的起点是http://localhost/project/project/public/
【讨论】:
我认为在 laravel 中,斜杠/
之后的 url 中的所有内容都在公共文件夹中。这就是我真正需要的。使公用文件夹成为 url 的起点
如果我理解你的问题,那是你的网络服务器配置错误,而不是 laravel 问题
哦,我确定我需要从 laravel 项目内部配置它。有服务器设置等
你可以启动 laravel 的 php web 服务器,从你的应用程序根目录在你的操作系统控制台中输入命令php artisan serve
,你将能够从localhost:8000运行你的项目以上是关于Laravel 路线根本不起作用的主要内容,如果未能解决你的问题,请参考以下文章