0

ドメインの別のページを取得する PHP cURL リクエストがあります。取得中のページには、 などのファイルがリンクされています.css。ファイルの 1 つを更新.cssしてドメインにアップロードし、同じページを再度要求すると、同じバージョンの.cssファイルが返され、今行った更新はありません。次に、ドメイン上のリンクされたファイルをチェックして、正常にアップロードされたかどうか (これは正しい) と、返されたページのリンクされたファイルの URL (正しいファイルを指している) を確認します。

すべての一時ブラウザ ファイルを削除して、リンクされたファイルの新しいバージョンを探すように強制しましたが、違いはありませんでした。

リクエストは正常に完了し、エラーはありません。キャッシュなどからの可能性があると思います。約 1 時間後にページが再度要求されると、.css返されたページ内に正しいバージョンのファイルが返されます。

私のcURLリクエストは次のとおりです。

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $host . $requestURL);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_handle, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl_handle, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
curl_setopt($curl_handle, CURLOPT_FORBID_REUSE, TRUE);
$content = curl_exec($curl_handle);
curl_close($curl_handle);
echo $content;

リンクされたファイルの最新バージョンを「強制的に」取得できないように見えるので、これは私を本当に混乱させました。

どんなアイデアも素晴らしいでしょう!

4

1 に答える 1

2

問題は、css ファイルのキャッシュされたコピーを取得していることです。これを修正するために使用できるヘッダーがあると思いますが、そうしたくない場合は、whatever.css?x=$random要求している URL に次のようなものを追加して、ファイルの新しいプルを強制的に実行してください。最善の方法ではありませんが、うまくいく可能性があります。

于 2012-10-23T16:22:31.600 に答える