静的ファイルを提供するためにlighttpdを使用しています。定期的に更新するディレクトリにたくさんの画像があります。これにより、ファイルの内容(およびファイルサイズ)と変更日が変更されますが、ファイル名は変更されません。
httpを介してファイルにアクセスすると、更新は考慮されず、古いファイルが軽く処理されます。ファイルの名前を手動で別の名前に変更すると、lighttpdは404エラーを返します。ファイルの名前を元に戻すと、正しい更新バージョンが表示されます。lighttyは独自のキャッシュメカニズム(これは問題ありません)を使用して静的ファイルを返すようです。残念ながら、ファイルが変更されても、このメカニズムは自動更新されないようです。
Wiresharkで確認したところ、ブラウザが実際にファイルへのリクエストを実行していますが、これはブラウザのキャッシュの問題ではありません。空のキャッシュからリクエストすると200 OKを返し、そうでなければ304 Not Modifiedを返します。しかし、実際の最終更新日を反映していない誤ったLast-Modifiedヘッダーでファイルが返されます。
多分私が知らないいくつかの設定ディレクティブがありますか?
lightyによって返されるファイルに、ディスクに直接加えられた変更を反映させるか、少なくともそのキャッシュを無効にできるようにしたいと思います。
この質問をフォローしている人のための更新:犯人を見つけました。静的ファイルを更新すると、Lightyは新しいコンテンツを返しませんが、ヘッダーに新しいContent-Lengthを返します。その結果、ガベージが表示されます。mod_compressを使用してファイルを圧縮すると、mod_compressが独自のキャッシングシステムを使用するため、問題はなくなります。残念ながら、すべてのファイル(たとえば画像ファイル)を圧縮することはできません。ですから、これは部分的な修正にすぎませんが、後で戻ってきて、途方もなく解決策を見つけます。