1

我在一些云提供商之外运行 PlayFramework 2.5.x 服务器。登陆页面有这个细节:

    @(webJarAssets: WebJarAssets, form: Form[(String,String,String)], user: Option[User]=None)(implicit flash: Flash, messages: Messages)
....

        @if(user.isDefined){
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> @{user.get.firstName} <b class="caret"></b></a>
        }

基本上 twirl 用于显示登录用户他的名字在菜单中的某个地方

但问题是公司代理正在缓存此首页,因此公司中访问该页面的每个人都会获得最后记录的名字(看起来该用户已登录服务器)。F5 有帮助(但我正在寻找更好的解决方案)

奇怪的是,代理在某种程度上正在与播放服务器通信,因为在日志中,当缓存服务发生时,这会记录在播放服务器日志中:

2017-01-12 16:55:31  application-akka.actor.default-dispatcher-138 [DEBUG] a.s.impl.io.InputStreamPublisher application-akka.stream.default-blocking-io-dispatcher-144 - No more bytes available to read (got `-1` from `read`)

好像代理正在询问播放服务器这样可以吗?页面的 HTTP 元数据如下所示:

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />

按 F5 进入服务器并获取正常内容(但我认为这是代理故障)。有人遇到过这个问题吗?

4

0 回答 0