Когда я загружаю свое приложение Laravel на сервер, маршруты не обновляются. Например, я добавил следующий простой маршрут в самом верху других маршрутов:
Route::get('/test', function () {
return 'test';
});
Но когда я открываю тест, я получаю 404 вместо «тест». Поскольку приложение находится на общем хостинге, я не могу запускать определенные команды, однако я попробовал
php artisan route:clear
php artisan config:clear
php artisan cache:clear
на локальном, а потом заново закачивать папки bootstrap и Storage, однако это ничего не решило. Конечно, все работает на локальном.
Спасибо за любую помощь.
Я только что загрузил все файлы с помощью FileZilla... Все существующие маршруты работают, но не применяются только изменения в маршрутах.
есть ли у вас index.php в корне вашего приложения, который направляет приложение в вашу общую папку?
Да, с первого раза все работало правильно. Однако любые изменения в файле маршрута не отражаются.
вам нужно route:clear на сервере, а не на локальном
Я думаю, что перезапись URL-адресов не работает. Если вы размещаете сервер на сервере Apache, вам необходимо иметь работающий файл .htaccess. Если вы размещаете сервер на сервере nginx, вам необходимо иметь работающий файл web.config в каталоге public. Алс проверьте рут паблика. Иногда это public_html или httpdocs.






Вы можете создать маршрут в 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-адрес, все будет работать отлично.
Надеюсь, это сработает для вас.
Спасибо за помощь. Мне нужно было сначала добавить его к существующему маршруту, но после этого он работал хорошо.
Нет проблем... дайте ответ +1 ;)
«Когда я загружаю свое приложение Laravel на сервер» — как именно вы это делаете?