【问题标题】:Laravel routing cacheLaravel 路由缓存
【发布时间】:2020-11-08 19:05:36
【问题描述】:

当我开发一个 Laravel 应用程序时,我曾经在对 routes\web.phproutes\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


【解决方案1】:

当你使用类似的命令时

php 工匠优化

php 工匠路线:缓存

您的路由文件(在 routes/ 下)正在被解析和缓存。现在,下一个请求将来自缓存路由,而不是来自 routes/*.php。

如果你使用过上述命令,在修改路由php文件后,你应该重新缓存它们,或者使用

php工匠路线:清除

删除缓存。然后,下一个请求将通过 routes/*php 文件进行路由。

【讨论】:

  • 谢谢@Davud。你的回答启发了我去测试一些东西,它按预期工作。
猜你喜欢
  • 1970-01-01
  • 2015-06-01
  • 2016-06-07
  • 2016-09-14
  • 2020-05-05
  • 2020-11-17
  • 2020-06-01
  • 1970-01-01
  • 2019-11-10
相关资源
最近更新 更多