У меня проблема при развертывании laravel на herkou (смешанный контент) - PullRequest
0 голосов
/ 19 февраля 2020

Привет ... я окончен sh Создание веб-сайта с использованием Laravel и jQuery и bootstrap хорошо работает на локальном компьютере, но когда я загружаю в Heroku файл jQuery и bootstrap не работает ... он работает при локальном использовании http, но в Heroku его необходимость https не работает, но при записи http вместо https он работает хорошо, как локальный, и отображает Not Secure. Теперь любой специалист знает, как разрешить использование веб-сайта с использованием https в Heroku или как выбрать эту проблему

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Если бы я сам недавно решил эту проблему, есть несколько вариантов, и некоторые из них более тяжелые, чем другие. Если вы хотите гарантировать, что все всегда https без исключений, сначала обновите ваш APP_URL до 'https://example.com', затем в методе загрузки вашего AppServiceProvider добавьте Url::forceScheme('https');

Чем меньше опция для тяжелых рук - найти все места, где вы используете помощник asset(), и вместо этого изменить его на secure_asset. Помощник по ресурсам должен использовать ваш APP_URL, чтобы узнать, что запрос https, но по моему опыту я не мог на это полагаться, поэтому используйте secure_asset, чтобы убедиться, что

0 голосов
/ 19 февраля 2020

Вам следует внимательно прочитать все Руководство Heroku по началу работы с Laravel.

Раздел, озаглавленный «Доверие к балансировщику нагрузки», решит ваши проблемы.

Из-за этого:

Это означает, что запросы, полученные dyno, будут иметь IP-адрес последнего маршрутизатора в переменной среды REMOTE_ADDR, и внутренний запрос всегда будет выполняться с использованием протокола HTTP, даже если исходный запрос был сделан по HTTPS.

Laravel видит HTTP-запросы, поступающие в приложение, поэтому он обслуживает URL-адреса HTTP для ваших различных маршрутов и URL-адреса ресурсов. Насколько он знает, вы просматриваете через HTTP. Исправление заключается в том, чтобы доверять заголовкам Heroku, «перенаправленным для», в промежуточном программном обеспечении App\Http\Middleware\TrustProxies вашего приложения:

<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware
{
    protected $proxies = '*';
    protected $headers = Request:: HEADER_X_FORWARDED_AWS_ELB;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...