Шаблонизатор Blade обрезает протокол ссылки

Использую Laravel с шаблонизатором Blade. Столкнулся с проблемой, что нужно на странице указать ссылку типа https://example.com, а на странице вижу результат //example.com. Куда исчезает протокол ссылки? Кто сталкивался с таким, подскажите решение.


Ответы (3 шт):

Автор решения: Yury Plinto

Если Вы используете функцию-хелпер route, возможно у Вас сгенерировался относительный путь вместо абсолютного. У неё 3 параметра: имя маршрута, параметры и логическое значение (true или false), определяющее, будет сформирован полный путь или относительный. Попробуйте явно указать последний параметр. P.S. Не знаю, какую версию Laravel Вы используете, поэтому не могу сказать, работает ли описанная мной функция именно так.

→ Ссылка
Автор решения: Zerxa

Я бы не советовал вам что то изменять и ставить http, либо https, вместо //.

Сейчас можно указать // вместо https:// - это относительно новый формат, который понимают абсолютно все браузеры. Браузер сам понимает, необходимо ему работать через http, либо же через https.

Это поможет избежать некоторых проблем в будущем, к примеру когда сервер на который указана ссылка сменил адрес с http на https, либо же наоборот.

→ Ссылка
Автор решения: Anthony V

Недавно сталкнулся с подобной проблемой в Laravel 7. Дело в том что blade стал по особому обрабатывать route вызванный внутри тега a атрибута href И отдельно, то в одном случае есть https в дрогом нету.

<a href="{{route('home')}}">2</a>
{{route('home')}}


<a href="https://example.local/home">2</a>
http://example.local/home

Решением было

if (env('APP_ENV') === 'production') {
        URL::forceScheme('https');
}
→ Ссылка