Маршрут не запускается в Laravel 4.2

У меня есть папка с изображениями в example.com/img/и в то же время у меня есть маршрут

get('img/{path}', 'ImageController@output');

Но когда я пытаюсь example.com/img/someimagepath и если имя изображения someimagepath Я получаю это изображение вместо стрельбы по маршруту выше.

Есть ли способ сделать это пожарным маршрутом вместо запроса файла?

Если быть точным, я использую https://github.com/thephpleague/glide Библиотека Glide

0

Решение

Это потому, что сервер ищет в public папка, найти img каталог, и обслуживая изображение оттуда вместо загрузки public/index.php, Если index.php не загружен, laravel не загружен, поэтому маршруты не будут работать.

Переименуйте папку в общедоступном каталоге или переименуйте свой маршрут. Вы не можете иметь их оба ссылки img

Я бы сохранил каталог и переименовал ваш маршрут:

get('images/{path}', 'ImageController@output');

или, возможно, префикс ваших маршрутов, если вам действительно нравится img как сегмент:

get('app/img/{path}', 'ImageController@output');

По сути, ваши маршруты не могут идти по какому-либо пути public, Сервер знает, как загрузить laravel, если он не может найти каталог или файл в public который соответствует URI, он загружает index.php, Если он найдет каталог или путь к файлу, соответствующий URI, он будет использовать его вместо этого.

От public\.htaccess, В основном, если запрос не соответствует файлу или каталогу, загрузите index.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]