検索

ホームページ  >  に質問  >  本文

オブジェクトタグは最新バージョンの PDF を表示できません

現在、毎週更新されるオブジェクト タグ内に複数の PDF ファイルが含まれる Web サイトをホストしています。 これらの PDF ファイルの名前は同じままですが、データは変更されています。

現在私が使用しているもの:

リーリー

PDF を更新すると、次のことが期待されます

リーリー

最新の PDF を読みましたが、以前と同じままです。

追加しました?ファイル名の末尾で最新バージョンをチェックする必要がありますが、機能していないようです。

ブラウザのキャッシュをクリアすると更新されますが、もちろんこれはユーザーには機能しません。

ご協力ありがとうございます。

P粉677573079P粉677573079240日前477

全員に返信(1)返信します

  • P粉300541798

    P粉3005417982024-03-30 00:20:52

    この文脈では、キャッシュとは、ブラウザーが過去に URL からデータをロードし、そのデータのローカル コピーをまだ保持している場所を指します。処理を高速化し、帯域幅を節約するために、サーバーから新しいコピーを要求する代わりに、ローカル コピーを使用します。

    ブラウザに新しいコピーを取得させたい場合は、キャッシュ内のコピーが不良であるとブラウザに認識させる必要があります。

    キャッシュクリアクエリ文字列

    このメソッドを使用しようとしていますが、ニーズに合わないため、実装が壊れています。

    この手法は、Web サイトのスタイルシートなど、頻繁に変更されず、予測不可能なリソース向けに設計されています。 (リソースは毎週変更されるため、これは良い選択肢ではありません。)

    これがどのように機能するかというと、リソースが変更されるたびにその URL も変更されます。これは、URL がブラウザによってキャッシュされたデータと一致しないことを意味します。ブラウザは新しい URL を知らないため、再度リクエストする必要があります。

    クエリを n=1 にハードコードしているため、 変更されることはなく、オブジェクトが破棄されます。

    一般的な方法は、クエリ値をファイルのタイムスタンプまたはチェックサムに設定することです。 (これは通常、展開プロセスの一部として Web サイトのビルド ツールを使用して行われます。)

    キャッシュ制御ヘッダー

    HTTP は、新しいコピーをいつ取得する必要があるかをブラウザに伝えるメカニズムを提供します。さまざまなヘッダーがあります。この

    Web 作成者および Web マスターのためのキャッシュ チュートリアル を読むことをお勧めします。このトピックは非常に詳しく説明されています。

    ドキュメントの有効期限は毎週切れるので、PDF の URL の HTTP リソースに

    Expires ヘッダーを設定するのが最善の方法だと思います。

    これを、(たとえば) 新しいバージョンのアップロード予定時刻から 1 時間後にプログラムで設定できます。

    これを行う方法は、PDF が展開されているホストの HTTP サーバーやサーバー側のプログラミング機能によって異なります。

    返事
    0
  • キャンセル返事