我正在研究Laravel 5.4 我创建了一个菜单,其中有三个选项卡主页,关于和联系。当我单击主页时,它应该在主页上。单击“关于”时,它应该在“关于”页面上。...
web.php:
<?php
Route::get('/', function()
{
return View('method1.home');
});
Route::get('about', function()
{
return View('method1.about');
});
**方法1是资源\视图中的文件夹**
home.blade.php:
@extends('method1.dashboard')
@section('content')
<h1>This is home page</h1>
@endsection
about.blade.php是:
@extends('method1.dashboard')
@section('content')
<h1>This is about page</h1>
@endsection
dashboard.blade.php是:
@include('method1.includes.menu-header')
menu-header.blade.php是:
<li class="active"> <a href="/">Home</a></li>
<li> <a href="/about">About</a></li>
但是当我单击主页或关于页面时。它显示找不到页面。
我的laravel projet文件夹名称为 admin_laravel 。当我运行http://localhost/admin_laravel/时,它显示主页,而当运行http://localhost/admin_laravel/about时,它显示页面。
但是,当我单击关于菜单按钮时,浏览器中会显示链接 http://localhost/about 。表示它与 http://localhost/admin_laravel/about 无关,并且页面未显示。
答案 0 :(得分:2)
您在那里缺少任何东西,可以通过以下快速修复方法:
<li class="active"> <a href="{{ url('/') }}">Home</a></li>
<li> <a href="{{ url('about') }}">About</a></li>
您还可以提供路线名称并使用路线方法:
Route::get('about', function()
{
return View('method1.about');
})->name('about');
然后:
<li> <a href="{{ route('about') }}">About</a></li>
答案 1 :(得分:2)
您正在对URL进行硬编码。当您拥有<li><a href="/about">About</a></li>
时,您将告诉浏览器从域的根目录转到about
路径(这是在您的URL加上/
前缀时发生的情况)这种情况是http://localhost/
。
您应该做一些事情。首先,设置项目的基本URL,然后可以在 .env 文件
中更新APP_URL
APP_URL=http://localhost/admin_laravel
或 config / app.php 中的url
选项。
'url' => env('APP_URL', 'http://localhost/admin_laravel'),
第二,在Laravel中生成URL时,有很多选择。如果您没有使用命名路由,则应使用url
帮助方法来生成您的URL:
<li><a href="{{ url('about') }}">About</a></li>
这将确保您的URL是基于项目的根目录,而不是域的根目录。当您将url
与如上所述的正确设置结合使用时,将正确生成您的URL。