【问题标题】:How to clear Laravel route caching on server如何清除服务器上的 Laravel 路由缓存
【发布时间】:2016-10-19 03:17:38
【问题描述】:

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

关于本地主机

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

如果我在我的 route.php 文件中评论任何一条路线,然后在命令下方运行

php artisan route:cache

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

php artisan route:clear

到目前为止,一切都在 localhost 中被理解。没问题。

在godaddy的共享主机服务器上部署后

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

【问题讨论】:

    标签: laravel laravel-routing


    【解决方案1】:

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

    bootstrap/cache/routes.php

    如果您想更新它,只需运行 php artisan route:cache 并将 bootstrap/cache/routes.php 上传到您的服务器。

    【讨论】:

    • 你能告诉我们为什么要使用路由缓存吗?我的意思是如果我们不使用路由缓存会有什么问题?
    • @Helper 不使用路由缓存是没有问题的。正如documentation 中所述,它只会使“您的路线注册速度提高 100 倍”。
    【解决方案2】:

    如果您是通过 GIT 从本地计算机上传文件,那么您可以使用与本地计算机相同的命令,同时使用 BASH 或类似的方式连接到实时服务器。您可以像您一样使用它在本地使用。

    php artisan cache:clear
    
    php artisan route:cache
    

    它应该可以工作。

    【讨论】:

      【解决方案3】:

      对于您的情况,解决方案是:

      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:cache
      

      清除视图缓存:

      php artisan view:clear
      

      清除配置缓存:

      php artisan config:cache
      

      【讨论】:

        【解决方案4】:

        你可以在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上的该路由

        【讨论】:

        • 嗯,天才....你能告诉我,当我们无法清除我们的路由缓存时,我们如何定义这条路由来清除我们的缓存?
        • 您可以将“route:clear”替换为所有这些清除命令:“cache:clear”、“view:clear”、“config:cache”。
        猜你喜欢
        • 1970-01-01
        • 2013-05-08
        • 2017-12-08
        • 2021-07-14
        • 2017-06-25
        • 2015-10-05
        • 2016-07-11
        • 2018-11-17
        相关资源
        最近更新 更多