[Play] ブラウザキャッシュを無効化

Play Framework2でブラウザキャッシュを無効化するサンプルです。
たぶんもっとscalaっぽいやり方があるはず。

下記みたいなコードを
helpers / NoCache.scala として保存

package helpers

import play.api.mvc._
import play.api.http.HeaderNames._

object NoCache {

  def setHeaders(result:SimpleResult): SimpleResult = {
    result.withHeaders(
        PRAGMA -> "no-cache",
        CACHE_CONTROL -> "no-cache",
        EXPIRES -> "Thu, 01 Jan 1970 00:00:00 GMT")    
  }

  implicit class NoCacheSimpleResult(val self: SimpleResult) extends AnyVal {
    def NoCache: SimpleResult = helpers.NoCache.setHeaders(self)
  }
  
}

使い方は各コントローラーで下のように書くとヘッダーへno-cacheを設定してくれます。


import helpers.NoCache._

def hogehoge(code: String) = Action.async { implicit request =>
    scala.concurrent.Future {
         
          // 何かしら処理 ・・・
    
          Ok(・・・).NoCache    
    }
  } 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です