позволяя браузеру кэшировать сгенерированный PHP файл PDF - PullRequest
0 голосов
/ 24 марта 2020

Я использую SetaPDF для печати PDF-файла, используя PHP. Поскольку печать - это длительный и тяжелый процесс на стороне сервера, я пытаюсь заставить браузер (все браузеры) кэшировать штампованный PDF, когда пользователь просматривает его в своем браузере, поэтому в следующий раз, когда он посещает URL моей маркировки * Файл 1020 * - браузер будет извлекать PDF-файл из своего кэша.

Я пробовал несколько настроек заголовков, чтобы добиться этого, но, похоже, браузер никогда не кэширует PDF-файл и всегда извлекает его с сервера снова.

это заголовки, которые я пробовал:

header("Cache-Control: max-age=2592000");
header('Pragma: public');

Я вижу заголовки ответов браузера, как я их установил в PHP с помощью инструмента инспектора сетей chrome следующим образом:

Request Method: GET
Status Code: 200 OK
Response Headers: 
 Cache-Control: max-age=2592000
 Connection: Keep-Alive
 Content-Disposition: inline; filename="myfilename.pdf"
 Content-Length: 5383171
 Content-Type: application/pdf
 Date: Tue, 24 Mar 2020 16:00:57 GMT
 Expires: Thu, 19 Nov 1981 08:52:00 GMT
 Keep-Alive: timeout=5, max=100
 Pragma: public
 Server: Apache/2.4.6 (CentOS)
 X-Powered-By: PHP/7.0.32

но PDF, похоже, не кэшируется, а скорее извлекается с сервера, и это всегда код ответа 200, а не 304.

Я также пытался:

header('Cache-Control: only-if-cached');

и я попробовал вообще без "Cache-Control" или "Pragma". по-прежнему не может кэшировать PDF-файл.

Я неправильно устанавливаю заголовки? какие-либо предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...