3

表示されている画像ファイルを削除/更新するために使用されるスクリプトがあります。

問題は、それらが削除され、置き換えられていることです (特定のディレクトリをチェックインすると) が、その特定の URL に表示されている画像はまだ古いものです。

つまり、古いファイル (灰色の 1.jpg) を削除すると、ディレクトリは次のようになります。

ここに画像の説明を入力

しかし、URLはまだ古い灰色のimgとして1.jpgを表示しています。 ここに画像の説明を入力

ここで、間違った URL を検索して別のファイルを追加/編集していると思うかもしれませんが、確認のために、同じディレクトリに foo.html ファイルを追加し、1.jpg を foo.html に置き換えて、正しいディレクトリにあり、私はそうでした。

ファイルを置き換えて編集するための私のスクリプトは次のとおりです。

if(!empty($_FILES["pic".$ite]["name"])){
        if($id){
            unlink($path."$ite.jpg");
           
        }
        $ext = pathinfo($_FILES['pic'.$ite]['name'], PATHINFO_EXTENSION);
        $config["file_name"]="$ite.jpg";
        $this->transfer.="$ite.$ext";
        $this->upload->initialize($config);
        
        
        if(!$this->upload->do_upload("pic".$ite)){
            $this->transfer.=lang('msg_errorimage').' '.$ite;
        }
        }

フォルダーの名前を「3」から「3a」に変更し、画像へのリンクを開いて404エラーが発生し、フォルダーの名前を「3a」から「3」に戻し、正しい画像が表示されるようになりました.

4

3 に答える 3

5

画像をロードしようとするとき、ファイル拡張子の後にいくつかのパラメーターを配置します

。たとえば、1.jpg?t= です。<?=time()?>

ブラウザがデータをキャッシュすることがあるため、同じ名前のファイルをロードすると
、実際のファイルではなくキャッシュがロードされます。

js ファイルでも、js ファイル内のコード行を変更する
と、行った変更が有効にならない場合があります。変更を確認するには、キャッシュを強制的に更新する必要があり
ます。ctrl+F5 または単にファイル拡張子の後にパラメータを配置

例: jsfile.js?t=<?=time()?>

于 2012-11-02T15:12:47.057 に答える
5

オプション 1 : キャッシュを消去 (CTRL+F5 でサーバーからページを強制的にロード)、オプション 2 : 可能であれば一意のファイル名を選択します。

オプション 1 ではページ全体がサーバーからリロードされ、オプション 2 では新しい画像のみが読み込まれることに注意してください。

于 2012-11-02T16:27:23.353 に答える
2

そのページからキャッチを削除したい場合は、ページの上部にこれを含める必要があります:-

$this->output->set_header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); 
$this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false); 
$this->output->set_header("Pragma: no-cache");
于 2012-11-02T19:44:02.680 に答える