【问题标题】:Is it possible to ignore the Laravel Lang cache temporarily?是否可以暂时忽略 Laravel Lang 缓存?
【发布时间】:2015-03-17 09:38:27
【问题描述】:

我构建了一个有趣的翻译系统,它可以读取我的应用程序中的所有 trans()/Lang::get() 调用,并将它们与当前翻译一起显示在 resources/lang 的本地化文件中,以便管理员用户可以输入新的翻译它会即时更新单个本地化文件。

一切都按预期工作,但有一个小烦恼:每次发送表单并更新本地化文件时,页面都会重新加载(通过redirect()->route() 调用,而不是例如redirect()->back()),但大多数时候,即使文件已正确更新,它仍会显示旧信息。

如果我刷新,更改会在 0.5-5 秒后显示,这让我认为这是缓存问题。所以问题是:我可以在翻译系统中触发语言缓存忽略,还是有另一种和/或更智能的方式?我确实尝试睡了几秒钟,但这让用户体验有点糟糕。

【问题讨论】:

  • 语言实用程序上没有缓存,您可以通过浏览此 repo 上的代码看到:github.com/illuminate/translation。您是否尝试在重定向回来时转储翻译文件?
  • 谢谢。这不是反向重定向,但是是的,我有,它给了我旧的内容。
  • 我对语言文件进行了更改,但不知道如何使它们生效。我已经清除了所有可能的 laravel 缓存。你到底是怎么告诉 Laravel 重新读取语言文件的?
  • 希望我知道,@PastorBones - 我从来没有弄清楚这个问题。
  • 我想是时候花 2 个小时深入研究 Laravel 来弄清楚如何/为什么......我会在弄清楚时发布答案。

标签: laravel laravel-5


【解决方案1】:

我也有同样的问题。

我在我的控制器中添加了睡眠和信息以从 js 中额外刷新页面。

sleep(2);
return back()->with("refresh","yes");

然后在我看来:

@if (session('refresh'))
<script>
    location.reload(true);
</script>
@endif

我知道这是一个愚蠢的解决方案,但它确实有效。如果有人知道更好的方法,请给我写评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2020-02-12
    • 2015-06-07
    相关资源
    最近更新 更多