0

我有一个 PHP cURL 请求,它在我的域上获取另一个页面。正在检索的页面具有链接文件,例如.css. 当我更新其中一个.css文件并将其上传到域,然后再次请求相同的页面时,它会返回相同版本的.css文件,而没有我刚刚所做的任何更新。然后我检查域上的链接文件,看看它是否上传正常(确实如此)以及返回页面中链接文件的 url(指向正确的文件)。

我什至删除了所有临时浏览器文件以强制它查找链接文件的新版本,但这并没有什么不同。

请求成功完成没有错误。我认为它可能来自缓存或类似的东西。大约一个小时后,当再次请求页面时,在.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 回答