C++ コードを受け取り、それをサーバー上でコンパイルし、出力を吐き出す Web フォームがあります。問題の C++ コードは、Web ページで表示できる BMP ファイルに書き出されます。これは AJAX を介してインターフェースされます。私の主な問題は、プログラムを再コンパイルして画像を変更するたびに、ページを更新しない限り問題の画像が変更されないことです。したがって、キャッシングの問題だと思います。手順は次のとおりです。
- 人が C++ コードを入力する
- 人が送信を押します
- C++ コードは compile.php に送信されます
- compile.php はプログラムをコンパイルし、ディレクトリ内のすべての画像を表示します
プログラムで画像の色を変更してフォームを再送信すると、送信は成功しますが、ページを更新しない限り画像は変更されません。出力ファイル名を変更したときにこれを確認したところ、正しい色の新しい画像が作成されましたが、同じファイル名でプログラムを再コンパイルすると、ページを更新しない限り、その特定の画像は変更されません。
PHPファイルの先頭にno-cacheヘッダーを入れてみました。
<?php
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>