我构建了一个有趣的翻译系统,它读取我的应用程序中的所有trans()
/Lang::get()
调用,并在resources/lang
中的本地化文件中显示它们以及它们的当前翻译,这样管理员用户就可以输入新的翻译,从而动态更新单个本地化文件。
一切都按预期进行,但有一个小麻烦:每次发送表单和更新本地化文件时,页面都会重新加载(通过redirect()->route()
调用,而不是例如redirect()->back()
),但大多数时候,即使文件已经正确更新,它仍然显示旧信息。
如果我刷新,更改会在0.5-5秒后显示,这让我认为这是缓存问题。所以问题是:当我在翻译系统中时,我可以触发语言缓存忽略吗?或者有其他更聪明的方法吗?我确实试着睡了几秒钟,但这让用户体验有点糟糕。
我遇到了同样的问题。
我在控制器中添加了睡眠和信息,以从js额外刷新页面。
sleep(2);
return back()->with("refresh","yes");
然后在我看来:
@if (session('refresh'))
<script>
location.reload(true);
</script>
@endif
我知道这是一个愚蠢的解决方案,但它有效。如果有人知道更好的方法,请给我写一条评论。