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