0

Internet Explorer に問題があります。この場合、キャッシングの問題。サーバーに保存され、動的に生成されたサイト (WordPress) で参照されている画像は、それらの画像が何らかの方法で変更されたときに IE8 で「赤い x」として表示されますが、画像の URI はコードで変更されません。時折。

これらのリソースの URI を変更すると、IE で画像が正しく表示されます。したがって、画像 URI の末尾に、やや一意のクエリ文字列を追加したいと考えています (別名、「graphic.png」を「graphic.png?d=a334bc4zxdg2」(ランダム化されている場合) または「graphic.png?d=201103091616」に変更します)。 .PNG および .JPG ファイルタイプの末尾に長いクエリ文字列が追加されている限り、私はランダム化されたクエリ文字列または「日付付き」クエリ文字列についてうるさいわけではありません。

私は自分で書いてみましたが、非常に謙虚です。これは preg_replace ステートメントで解決されると思います...次の行に沿った何か

<php
echo preg_replace('(png|jpg)', '$1.?d.=<the-randomizing-or-timestamp-code>','some-subject-I-dont-know-how-to-specify')
?>

上記からわかるように、このコードを書くには多くの助けが必要です。私はいくつかのユニークなフックを使用する WordPress で動作していることに注意してください。これを本文のコンテンツ全体に適用しようとしています。ありがとうございます!

==更新==

友人は次のように提案しています。

// Append PNG files with timestamp query string
function date_images () {
    $new_content = str_replace (".png" ,".png?id=".time() ,$original_content);
    }

add_filter('the_content', 'date_images');

それは正しい道ですか?Wordpress では正しく動作しませんが、コンテンツ要素が完全に消えてしまいます。ご協力いただきありがとうございます...

4

3 に答える 3

1

IE 以外のユーザーが通常の画像 URL を引き続き取得できるように、これをクライアント側の修正として実装することをお勧めします。

私はこれを試してみます:

<script type="text/javascript" src="PATH-TO-JQUERY"></script>
<script type="text/javascript">
// document.all is IE only
if ( document.all )
{
    $(document).ready(function(){
        // grab each image
        $('img').each(function(){
            var date = new Date;
            // add the current unix timestamp in microseconds to the the image src as a query string
            this.src = this.src + '?' + date.getTime();
        });
    });
}
</script>

<img src="image1.gif" />
<img src="image2.gif" />
<img src="image3.gif" />
于 2011-03-10T07:06:24.123 に答える
0

私があなたを正しく理解していれば、次のことができます:

echo $variable.'?d='time();

文字列の末尾に unixtime スタンプを追加します。

于 2011-03-10T00:39:14.390 に答える
0

行う必要があるのは、ブラウザをだまして画像をリロードさせることだけです。

ファイル名はどこでも同じままでかまいません。必要な変更は、画像を表示するときに img src="" を変更することだけです。

このようなもの:

<img src="<?php echo $img_name.'?'.time(); ?>" />
于 2013-10-15T12:41:08.070 に答える