2017-03-20 9 views
1

CSSファイルを変更するたびに、Playフレームワークは最新のファイルを選択しません。それは古いバージョンをキャッシュし、それを使い続けているようです。どのように私は、ファイルをサーバーから、ブラウザのキャッシュから(または、それはどこからCSS、JavaScriptファイルを選んでいる)を選ぶ必要が強制することができますか?Play FrameworkがJavascriptとCSSの最新の変更を受け入れない

私は、ローカルマシン上でサーバを実行し、localhostを使用しています:あなたはバージョン管理資産を使用する必要があるサーバー

+0

あなたは、特定のローカルリソースをキャッシュブラウザのではありませんか? http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development – tgk

答えて

1

にアクセスするために9000を。

GET  /assets/*file    controllers.Assets.versioned(path="/public", file: Asset) 

HTMLテンプレートで:

<script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script> 

、あなたがdigistプラグインを持っている必要がありbuild.sbt

// Production. 
pipelineStages := Seq(digest) 

// Development. 
pipelineStages in Assets := Seq(digest) 

でバージョン管理を設定することを忘れないでくださいあなたはcontrollers.Assets.versionedroutesで使用していることを確認してくださいproject\plugins.sbtでも可能

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1") 

結果のHTML:ファイル名は、ファイルのすべての更新の後に新しいとなりますので、

<script src="/assets/javascripts/a7c0637aa0972b62ef0c436a66be57b1-hello.js" type="text/javascript"></script> 

は、だから、キャッシュの問題を持っていません。

+0

ありがとうございます。私はPlay 2.2.6、sbt 0.13.0です。以前私は ''を使用していました。私は ''に変更しました。 build.sbtとplugins.sbtも同様に変更されました。しかし、私のJavascriptは読み込みませんでした。私は 'pipelineStages'は私が使っている遊びのバージョンには定義されていないと思います。 –

+0

あなたは正しかった - 私の投稿は十分ではなかったので、変更を戻してください。私はまだバージョン管理されたパイプラインが正しく動作しないと思います。 –