5

RFC 5545 に準拠して、PHP で動的に生成された iCalendar フィードを作成しました。iCal (つまり、Mac OS X の組み込みのカレンダー プログラム) が、以前にダウンロードしたイベントの更新を反映することを拒否しているように見えることを除いて、ほとんどの部分で問題なく動作しています。 . これはキャッシングによるものだと思います。フィードをキャッシュしないように iCal に指示する方法はありますか?

編集:そうそう、フィードが呼び出されるたびに各 VEVENT に異なる UID を持たせることを既に試みたことを忘れていました (私の UID 形式は「id」です。RFC 5545 の DATE-TIME 形式の現在の時刻は、データベース内のイベントの一意の ID です)。また、ヘッダーの Content-type で遊んでみました。この問題は、テキスト/プレーンまたはテキスト/カレンダーに設定した場合に発生します

4

2 に答える 2

2

私は iCal を扱ったことはありませんが、再検証を強制するようにヘッダーを設定してみてください。

<?php
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
于 2012-01-31T22:56:24.987 に答える
2

「キャッシュなし」ヘッダーを追加してみましたか?

<?php
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); //date in the past
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); //tell it we just updated
header( 'Cache-Control: no-store, no-cache, must-revalidate' ); //force revaidation
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' ); 
?>
于 2012-01-31T22:57:36.050 に答える