Кэширование веб-маршрутов с принудительной ссылкой в ​​laravel - PullRequest
8 голосов
/ 28 июня 2019

Я запускаю проект laravel за обратным прокси-сервером, поэтому мне нужно задать корневой URL и схему:

URL::forceRootUrl($proxy_url);
URL::forceScheme($proxy_schema);

Я добавил это в начало моего /routes/web.php ион работает нормально, пока я не запущу:

php artisan optimize

Он кэширует маршруты в /bootstrap/cache без принудительного URL-адреса и схемы, поэтому теперь все мои URL-адреса указывают на неправильный корневой URL-адрес.

Я пытался переместить код в /Providers/AppServiceProvider.php (как register, так и boot), чтобы он действовал при кэшировании маршрутов, но безуспешно.

Iнеобходимо вручную удалить файл кэша маршрутов в /bootstrap/cache, чтобы мои маршруты снова заработали.

Должен ли я включить его в действие при кэшировании маршрутов?

Редактировать: я также пыталсясоздать глобальное промежуточное программное обеспечение, где я делаю URL-адрес и схему.Опять же, он отлично работает до кэширования маршрутов, но при запуске php artisan optimize маршруты снова неверны.

Ответы [ 2 ]

9 голосов
/ 05 июля 2019

php artisan optimize удалено, поскольку laravel 5.6 ( источник , источник2 )

enter image description here

6 голосов
/ 05 июля 2019

Использование URL::forceRootUrl и URL::forceScheme выглядит как обходной путь для работы с обратными прокси.Чистым решением для этого было бы добавить доверенные прокси в вашей конфигурации. Этот пост полностью объясняет эту функцию.Но это сводится к следующему:

  1. Использование промежуточного программного обеспечения App\Http\Middleware\TrustProxies
  2. Редактирование свойства промежуточного программного обеспечения $proxies с IP-адресами вашего балансировщика нагрузки
    protected $proxies = [
        '192.168.1.1',
        '192.168.1.2',
    ];
Удалите следующий код из /routes/web.php
URL::forceRootUrl($proxy_url);
URL::forceScheme($proxy_schema);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...