Apache: Как указать кэширование для файлов. js и. css? - PullRequest
0 голосов
/ 07 января 2020

Я понимаю, что во время разработки веб-сайтов кэширование можно полностью отключить в начале любой страницы, используя PHP с использованием директивы

if (getenv("DEVELOP"))
    header("Cache-Control: no-store");

Но для производственного использования кэширование желательно для всех файлов, которые меняются не часто.

Насколько я понимаю, Apache веб-серверы кэшируют HTML файлы (или HTML, создаваемые PHP файлами) по умолчанию, но не стили или JavaScript файлы.

Я также понимаю, что кеширование для файлов, отличных от HTML, может быть указано либо в файле конфигурации, либо в файле .htaccess с использованием директивы «Заголовок набора Cache-Control». Каковы некоторые типичные способы сделать это?

1 Ответ

0 голосов
/ 07 января 2020

Apache не кешируется PHP, код выполняется каждый раз. Однако код компилируется в байт-код zend vm при условии, что PHP загружается в apache как модуль, и байт-код сохраняется до тех пор, пока не изменится базовый файл php. Заголовок HTTP предназначен для веб-браузеров, поэтому они не будут повторять запросы к вашему серверу.

Если вы хотите кэшировать динамические c страницы на вашем сервере, используя только apache и php, вы будете должен сделать это сам. Вы можете сделать это с php различными способами. Вы можете изменить существующие php файлы , используя php функции управления выводом , и записать вывод в файл, который затем будет связан с вашего сайта. Затем вам нужно будет настроить задание cron, supervisor или systemd для периодического запуска файлов php.

В качестве альтернативы некоторые фреймворки, такие как laravel, сделают для вас кэширование, если вы настроите его. В настоящее время очень популярным решением является объединение apache с nginx для целей кэширования.

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