кэширование файлов Javascript и CSS в ZEND - PullRequest
0 голосов
/ 23 февраля 2012

Глядя на изображение ниже, вы можете видеть, что в моем приложении много javascript и css. javascripts и css в моем приложении http://i42.tinypic.com/zuiazk.jpg;

Есть ли в ZEND Framework способ кэшировать все это, чтобы страница не загружала все эти таблицы стилей и скрипты?

1 Ответ

2 голосов
/ 23 февраля 2012

Проблема не является проблемой Zend Framework. Речь идет о направлении клиента (по всей вероятности, в веб-браузер) кешировать контент на его стороне, чтобы в следующий раз, когда ему это понадобилось, ему не нужно было запрашивать его, а серверу не приходилось его доставлять.

Обычно это выполняется путем отправки заголовков кэша с сервера на клиент. Точные заголовки, которые вам нужно отправить, зависят от того, как долго вы хотите, чтобы браузер кэшировал. Поиск Google покажет вам это.

В «стандартном» приложении Zend Framework эти внешние ресурсы javascript и css находятся в папке public вашего приложения и обслуживаются непосредственно вашим веб-сервером. Zend Framework никогда даже не трогает их. В результате метод отправки этих заголовков кэша будет зависеть не от Zend Framework, а от вашего веб-сервера.

Например, в Apache, если у вас есть модуль mod_expires, сам Apache может получить команду отправлять правильные заголовки кэша. Добавьте что-то вроде этого в каталог .htaccess в public/assets:

ExpiresDefault "access plus 1 month"

Подробнее см. В документации mod_expires .

Конечно, когда вы обновляете какой-либо контент в этом каталоге public/assets, вы хотите, чтобы все клиенты запрашивали новый контент, а не повторно использовали кэшированный контент. Изменение URL запрошенного ресурса путем добавления строки запроса - что-то вроде изменения с http://example.com/assets/js/myscript.js на http://example.com/assets/js/myscript.js?v=20120223 - приведет к новой загрузке.

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