Маршруты Laravel не обновляются на сервере

Когда я загружаю свое приложение Laravel на сервер, маршруты не обновляются. Например, я добавил следующий простой маршрут в самом верху других маршрутов:

Route::get('/test', function () {
    return 'test';
});

Но когда я открываю тест, я получаю 404 вместо «тест». Поскольку приложение находится на общем хостинге, я не могу запускать определенные команды, однако я попробовал

php artisan route:clear
php artisan config:clear
php artisan cache:clear

на локальном, а потом заново закачивать папки bootstrap и Storage, однако это ничего не решило. Конечно, все работает на локальном.

Спасибо за любую помощь.

«Когда я загружаю свое приложение Laravel на сервер» — как именно вы это делаете?

Nico Haase 10.06.2024 11:54

Я только что загрузил все файлы с помощью FileZilla... Все существующие маршруты работают, но не применяются только изменения в маршрутах.

Bojan 10.06.2024 11:58

есть ли у вас index.php в корне вашего приложения, который направляет приложение в вашу общую папку?

Atoli Gaming 10.06.2024 12:06

Да, с первого раза все работало правильно. Однако любые изменения в файле маршрута не отражаются.

Bojan 10.06.2024 12:13

вам нужно route:clear на сервере, а не на локальном

kris gjika 10.06.2024 12:16

Я думаю, что перезапись URL-адресов не работает. Если вы размещаете сервер на сервере Apache, вам необходимо иметь работающий файл .htaccess. Если вы размещаете сервер на сервере nginx, вам необходимо иметь работающий файл web.config в каталоге public. Алс проверьте рут паблика. Иногда это public_html или httpdocs.

Remco K. 10.06.2024 12:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
6
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете создать маршрут в web.php, чтобы очистить все caches

Узор 01

Route::get('/clear-cache', function() {
    $callMsg = '';

    Artisan::call('cache:clear');
    $callMsg .= "<h5 style='margin:10px 0 12px'>Cache cleared ...</h5>";

    Artisan::call('config:clear');
    $callMsg .= "<h5 style='margin:0 0 12px'>Config cleared ...</h5>";

    Artisan::call('config:cache');
    $callMsg .= "<h5 style='margin:0 0 12px'>Config Cache cleared ...</h5>";

    Artisan::call('route:cache');
    $callMsg .= "<h5 style='margin:0 0 12px'>Route Cache cleared ...</h5>";

    Artisan::call('route:clear');
    $callMsg .= "<h5 style='margin:0 0 12px'>Routes cleared ...</h5>";

    Artisan::call('view:cache');
    $callMsg .= "<h5 style='margin:0 0 12px'>View Cache cleared ...</h5>";

    Artisan::call('optimize');
    $callMsg .= "<h5 style='margin:0 0 12px'>Site optimized ...</h5>";

    return $callMsg;
});

Узор 02

Route::get('/clear-cache', function () {
    $cacheCommands = array(
        // 'event:clear',
        'view:clear',
        'cache:clear',
        'route:clear',
        'config:clear',
        'clear-compiled',
        'optimize:clear'
    );

    foreach ($cacheCommands as $command) {
        Artisan::call($command);
    }

   return "Cache cleared successfully";
});

Если вы когда-нибудь захотите очистить кеш на стороне сервера с помощью Laravel Commands, просто нажмите URL-адрес /clear-cache (с URL-адресом вашего сайта), вот так

например http(s)://www.foo-boo.com/clear-cache

У меня это работает идеально. Дайте мне знать, если это сработает для вас.

Примечание. В первый раз выдаст ошибку 404, но когда вы во второй раз нажмете на тот же URL-адрес, все будет работать отлично.

Надеюсь, это сработает для вас.

Спасибо за помощь. Мне нужно было сначала добавить его к существующему маршруту, но после этого он работал хорошо.

Bojan 19.06.2024 08:56

Нет проблем... дайте ответ +1 ;)

deemi-D-nadeem 20.06.2024 13:51

Другие вопросы по теме