こんな感じにできないかなと思ってはいるのですが、当然のことながらこれはangular だけではできません(よね?)
私の知る限り、AngularJSだけで実現、というわけにはいかないとおもいます。
ご指摘のようにJSファイルのパスの後ろに擬似パラメータを振るだけであれば、(少し汚いですが)下記の方法でいいのではないでしょうか。
<script src="controller.js?update=20130808104500"></script>
↓ 書き換え ↓
<script type="text/javascript">
var cachebuster = Math.round(new Date().getTime() / 1000);
document.write('<scr'+'ipt type="text/javascript" src="controller.js?cb=' +cachebuster+'"></scr' + 'ipt>');
</script>
または、Gruntをお使いであれば、grunt-revでリビジョン番号をファイル名に自動的に付与して、scriptタグも書き換えた状態の
HTMLをビルドすることもできます。
以上、ご参考まで。
On Thursday, August 8, 2013 10:53:23 AM UTC+9, 永井友之 wrote:
永井です。
angularjs を使って実装しているときに
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="/static/js/lib/angular.min.js"></script>
<script src="controller.js"></script> # <- このファイルに実装を書いていく
</head>
<body>
:
:
とかいて、デプロイ->確認しようとするとブラウザが controller.js をキャッシュしてしまっていて、最新の処理にならないことがあります。
そこで
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="/static/js/lib/angular.min.js"></script>
<script src="controller.js?update=20130808104500"></script> # <-
デプロイ日時をくっつける
</head>
<body>
:
:
こんな感じにできないかなと思ってはいるのですが、当然のことながらこれはangular だけではできません(よね?)
サーバがページをレンダリングしたら解決できますが、せっかくの angular なのでサーバはJSONを返すだけの構成にしてます。
angular を使う上でブラウザのキャッシュを強制的にクリアするおすすめの方法はどんなのがあるでしょうか?
お知恵を拝借いただけると幸いです。
CodeFreak-開発を楽しく。
永井友之(nagai tomoyuki)
nagai_t...@code-freak.jp
電話:08022449898
住所:東京都千代田区神田佐久間町1−14 第2東ビル8F
http://code-freak.jp/
https://www.facebook.com/nagai.tomoyuki.jp
https://twitter.com/nagai7