我刚刚开始学习laravel,我一直在寻找这个答案。我正在按照教程一步一步地启动它,我让它运行欢迎屏幕,但如果我点击登录或注册它说该文件不存在。但是,如果我做了路线。
Route::get('/', function() {
return view('auth/login');
});
找到该页面并显示它。
这是登录页面的链接。
<div class="panel panel-success">
<div class="panel-heading">List of Game of Thrones Characters</div>
@if(Auth::check())
<p>Success</p>
@endif
</div>
<?php
echo getcwd() . "\n";
?>
@if(Auth::guest())
<a href="/login" class="btn btn-info"> You need to login to see the list >></a>
@endif
在href标签中我尝试了/ auth / login,/ login,你可以尝试任何组合,无论如何都找不到文件。这是我试图让它发挥作用的路线。
Route::get('/login', function() {
return view('auth/login');
}
任何人都可以解释为什么这不起作用?我到处寻找,这似乎是正确的方式来调用它。请记住,我刚刚开始使用模板。
答案 0 :(得分:2)
您需要在网络服务器中设置Web服务器重写。
最简单的处理方法是在.htaccess
目录中使用public/
文件。这是Laravel 5.3的默认.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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
您还需要确保已启用mod_rewrite
Apache模块。您可以通过运行这两个启用模块并重新启动Apache的命令来实现:
a2enmod rewrite
service apache2 restart