如何清除服务器上的 Laravel 路由缓存

问题描述 投票:0回答:8

这是关于本地主机上的路由缓存

关于本地主机

我的route.php 文件中有2 条路线。两者都工作正常。没问题。我在学习route:clear和route:cache时发现了一个小问题如下。

如果我在我的route.php文件中注释任何一条路由,然后运行下面的命令

php artisan route:cache

这将使路由保持禁用状态,因为路由列表现在在缓存中。现在,转到route.php 文件并尝试删除注释的路由,然后尝试运行该启用的URL。仍然会显示 404,因为我需要使用下面的命令删除缓存

php artisan route:clear

到目前为止,本地主机中的一切都已被理解。没问题。

在 godaddy 上的共享托管服务器上部署后

问题:如何删除服务器上的路由缓存?

laravel laravel-routing
8个回答
87
投票

如果您想删除服务器上的路由缓存,请删除此文件:

bootstrap/cache/routes.php

如果您想更新它,只需运行

php artisan route:cache
并将
bootstrap/cache/routes.php
上传到您的服务器。


50
投票

如果您从本地计算机通过 GIT 上传文件,那么当您使用 BASH 等连接到实时服务器时,您可以使用在本地计算机中使用的相同命令。您可以像在本地使用一样使用它.

php artisan cache:clear

php artisan route:cache

应该可以。


39
投票

对于您的案例解决方案是:

php artisan cache:clear
php artisan route:cache

优化路由加载是生产中必须的:

如果您正在构建具有许多路由的大型应用程序,则应确保在部署过程中运行route:cache Artisan命令:

php artisan route:cache

此命令将所有路由注册减少为缓存文件中的单个方法调用,从而在注册数百条路由时提高路由注册的性能。

由于此功能使用 PHP 序列化,因此您只能缓存 专门使用基于控制器的路由的应用程序的路由。 PHP 无法序列化闭包。

Laravel 5 清除路由、视图、配置中的缓存以及应用程序中的所有缓存数据

我想分享我的经验和解决方案。当我使用 gitlab 开发我的 laravel 电子商务网站时。在开发过程中,我突然在获取视图缓存时出现错误。我确实尝试了很多刷新和其他操作,但我在视图中看不到任何更多变化,但最后我确实使用 laravel 命令解决了我的问题,所以,让我们看看我添加了几个命令来从视图、路由、配置中清除缓存等等

重新优化的类加载器:

php artisan optimize

清除缓存门面值:

php artisan cache:clear

清除路由缓存:

php artisan route:clear

清除视图缓存:

php artisan view:clear

清除配置缓存:

php artisan config:clear

16
投票

您可以在 web.php 中定义路由

Route::get('/clear/route', 'ConfigController@clearRoute');

并像这样制作 ConfigController.php

   class ConfigController extends Controller
{
    public function clearRoute()
    {
        \Artisan::call('route:clear');
    }
}

然后转到服务器示例上的该路线

http://your-domain/clear/route


3
投票

我建议您使用

php artisan optimize
代替。

optimaze
执行以下任务:

  • 配置缓存已成功清除。
  • 配置缓存已成功缓存。
  • 路由缓存已成功清除。
  • 路由已成功缓存。
  • 文件已成功缓存。 而且,您可以通过一个命令来实现它。

3
投票

如果您想清除服务器上的路由缓存,请打开托管提供商(例如 GoDaddy、NameCheap)提供的终端并运行以下命令:

php artisan cache:clear
php artisan route:clear

如果您无法找到终端,那么您可以创建一个路由来清除服务器上的缓存:

<?php

use Illuminate\Support\Facades\Artisan;

Route::get('/clear-cache', function () {
   Artisan::call('cache:clear');
   Artisan::call('route:clear');

   return "Cache cleared successfully";
});

你可以查看这个例子


0
投票

我是你使用这个工匠命令

php artisan optimize:clear
有时,如果您没有适当的权限,则会出现错误。然后您可以使用与 sudo

相同的命令
sudo php artisan optimize:clear

-1
投票

无需 Artisan 命令即可清除共享主机上的缓存

如何从浏览器清除路由缓存

 Route::get('/route-cache', function() {
     $exitCode = Artisan::call('route:cache');
     return 'Routes cache cleared';
 });

如何从浏览器清除配置缓存

 Route::get('/config-cache', function() {
     $exitCode = Artisan::call('config:cache');
     return 'Config cache cleared';
 });

如何从浏览器清除应用程序缓存

 Route::get('/clear-cache', function() {
     $exitCode = Artisan::call('cache:clear');
     return 'Application cache cleared';
 });

如何从浏览器清除视图缓存

 Route::get('/view-clear', function() {
     $exitCode = Artisan::call('view:clear');
     return 'View cache cleared';
 });
© www.soinside.com 2019 - 2024. All rights reserved.