Я создал страницу профиля в Laravel с чем-то вроде / profile / {name}, и я использую UserController @ showProfile:

public function showProfile($name)
{
    if(!Cache::has($name))
    {
        if(DB::table('users')->where('name', $name)->exists())
        {
            $user = DB::table('users')->where('name', $name)->get();
            Cache::put($name, $user, 10);
        }
        else
        {
            return view ('error404');
        }
    }

    return view ('user.profile', ['profile_stats' => Cache::get($name)]);
}

Но навигационные вкладки не работают, если я поставлю / profile / {name}, если я оставлю это просто / profile в маршрутах, все работает.

Это profile.blade.php с навигационными вкладками: https://pastebin.com/wzKM8wRd, и это < a href = "https://pastebin.com/XLBKX6Gr" rel = "nofollow noreferrer"> https://pastebin.com/XLBKX6Gr - это макет.

Route :: get ('profile / {name}', 'UserController @ showProfile');

-1
Andrei G. 3 Апр 2017 в 12:05

2 ответа

Лучший ответ

Можете ли вы показать нам скрипт просмотра контента: user.profile.blade.php?

И не используйте кеш, пока не убедитесь, что все работает нормально.

public function showProfile($name)
{
    $user = DB::table('users')->where('name', $name)->get();

    return view ('user.profile', ['profile_stats' => $user]);
}

Обн

  1. любые ошибки JS в консоли браузера?
  2. навигация работает, когда URL заканчивается /profile/? может тебе стоит попробовать /profile/{name}/

Так что исправьте ошибки js ... и затем возвращайтесь :) похоже, что ваша проблема с хэш-навигацией не является проблемой Laravel.

0
skido 3 Апр 2017 в 10:38

Я решил, проблема была:

<script type="text/javascript">
        window.jQuery || document.write("<script src='js/jquery.js'>"+"<"+"/script>");
    </script>

Я забыл поставить / перед js / jquery.js:

<script type="text/javascript">
        window.jQuery || document.write("<script src='/js/jquery.js'>"+"<"+"/script>");
    </script>

Однако спасибо за ответы!

0
Andrei G. 3 Апр 2017 в 10:32