【发布时间】:2020-11-08 19:05:36
【问题描述】:
当我开发一个 Laravel 应用程序时,我曾经在对 routes\web.php 或 routes\api.php 进行任何更改后清除缓存。最近我在为一个同事做一个项目,发现每次我对我提到的任何文件进行更改时,该项目都不需要清除缓存。
所以我想知道自动加载器的问题是什么,或者一般问题到底是什么?
【问题讨论】:
-
我不断看到人们推荐“请使用 cache:clear 清除您的缓存”作为本站点中 cmets 和答案的解决方案。它可能会在您的生产环境中导致许多您无法恢复的灾难性结果。清除缓存(缓存:清除)与路由文件无关。相反,您可以使用/需要 route:cache(它也调用 route:clear)来刷新缓存的应用程序路由。您也可以查看此答案以获得一些见解 (stackoverflow.com/a/61879432/2188922)
-
您是否首先检查了路由是否被缓存?或者它可能包含无法缓存的内联函数的路由?无缓存,无需清缓存。
-
谢谢@Ersoy。我明白了你的意思,但我的问题是为什么我每次更改路由文件时都应该清除缓存,尽管在某些环境下我可能不会这样做。我的服务器环境有问题吗..?
-
其实不用,清缓存跟路由文件没有关系。框架的 Route 组件有不同的命令来使缓存路由失效,例如 route:clear 或 route:cache。
-
@MaartenVeerman 我列出了更改前后的路线。除非我清除缓存,否则路由表不会更改
标签: php laravel caching routes autoloader