現在、Symfony 3アプリケーションを使用しています。私は、ユーザーが画像をアップロードしてからクロップセクションを選択し、最後に特定の高さと幅のアバターを保存するサービスを作成しました。アバターは/web/img/uploads/avatar/
フォルダーに保存されます。私はファイルに名前を付けるためにユーザーIDを使用しています。したがって、ID13のユーザーは、アバターを/web/img/uploads/avatar/13.png
に保存します。Symfony 3 - 瞬時に更新されない画像
私の問題は、ユーザーが自分のアバターを更新すると、そのファイルはフォルダ内で正しく置き換えられますが、実際のWebサイトでは表示されているアバターはしばらく前のアバターのままです。 dev環境では、これは新しいアバターが古いアバターを置き換える前に数分かかるようなものです。私がアバターのURL(localhost/app_dev.php/img/uploads/avatar/xxx.png
)に行っても、しばらくの間古いアバターが表示されてから、新しいアバターに変わります。 Tho、ファイルシステムのアバターは、期待通りに即座に置き換えられます。
これはキャッシュからのものだと考えました。私はGoogle上でソリューションを探してみましたが、LiipImagineBundleとそのキャッシュマネージャーに関連していましたが、私はこのバンドルを使用していませんでした...
名前がわかってから古いアバターを削除しようとしました実際にイメージを切り取り保存する前に次のように。
if(file_exists($dst)) {
unlink($dst);
}
しかし、動作しません。まったく。
アイデア?
これはブラウザのキャッシュです – bxN5
そして、あなたのアバターを変更したことをユーザーに伝えること以外は、実際には何もできません。ブラウザが最終的にキャッシュを更新することを決めるまで、あなたの新しい絵が見えます。 ? また、私が推測するように画像の名前をランダム化するだけで、ユーザーが新しいアバターをアップロードするたびに新しいURLが得られるので、URLが変わるようにします。 – Kishlin
クライアントのヘッダーを送信しようとしました(キャッシュコントロール:no-cache、再検証する必要があります) – bxN5