Я работаю над Laravel 5.4 Я создал меню, в котором три вкладки: Главная, О себе и Контакты. Когда я нажимаю «Дом», он должен быть на главной странице. При нажатии на кнопку about она должна появиться на странице about ....
web.php:
<?php
Route::get('/', function()
{
return View('method1.home');
});
Route::get('about', function()
{
return View('method1.about');
});
** method1 - это папка в resources \ views **
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 - admin_laravel. Когда я запускаю http: // локальный / admin_laravel /, он показывает домашнюю страницу, а при запуске http: // localhost / admin_laravel / о показывает страницу.
Но когда я нажимаю на о кнопке меню, тогда в браузере отображается ссылка http: // localhost / о. Означает, что это не работает с http: // localhost / admin_laravel / о и страница не отображается.
Возможный дубликат Использование именованного URL в шаблоне лезвия






Вам чего-то там не хватает. Для быстрого исправления вы можете сделать это:
<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>
Вот подробности: https://laravel.com/docs/5.2/helpers#method-route
Вы жестко кодируете свои URL-адреса. Когда у вас есть <li><a href = "/about">About</a></li>, вы говорите своему браузеру перейти по пути about из корня домена (что происходит, когда вы префикс URL-адреса с помощью /), которым в данном случае является http://localhost/.
Вам следует сделать несколько вещей. Сначала установите базовый URL для вашего проекта, вы можете обновить APP_URL в своем файле .env.
APP_URL=http://localhost/admin_laravel
или вариант url в config / app.php.
'url' => env('APP_URL', 'http://localhost/admin_laravel'),
Во-вторых, при генерации URL-адресов в Laravel есть довольно много вариантов. Если вы не используете именованные маршруты, вам следует использовать вспомогательный метод url для генерации ваших URL-адресов:
<li><a href = "{{ url('about') }}">About</a></li>
Это гарантирует, что ваш URL-адрес находится в корне вашего проекта, а не в корне домена. Когда вы используете url в сочетании с правильной настройкой, как описано выше, ваши URL-адреса будут сгенерированы правильно.
url метод работает. Но APP_URL или 'url' => env ('APP_URL', 'localhost / admin_laravel ') не работают
<a href = "/about">Вы явно ссылаетесь на страницу с информацией в корневом каталоге.