Динамически отключить кеширование Javascript / CSS с помощью PHP? - PullRequest
0 голосов
/ 26 октября 2011

Я закодировал опцию под названием «devmode» в своем веб-приложении, что в основном означает «без кэширования». Приложение обычно выводит автоматически минимизированную (и агрегированную) версию Javascript и CSS, но опция devmode переопределяет это.

Однако у нас все еще есть кеш браузера. Итак, без лишних слов, как я могу отключить кэширование ВСЕХ компонентов на странице, если определенное логическое значение PHP истинно?

Приветствия

Редактировать: вас может заинтересовать то, что я использую Apache, и у меня была одна идея - заставить .js и .css анализироваться как PHP (что довольно просто), и каким-то образом «добавить» небольшой кусочек PHP-код в начале каждого.

Ответы [ 2 ]

1 голос
/ 26 октября 2011

.htaccess

RewriteRule ^no-cache/(.*?)$ no-cache.php?file=$1 [QSA,L]

нет-cache.php

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
readfile('static/'.$_GET['file']);

Предполагая, что вы не взломаете себя:)

1 голос
/ 26 октября 2011

«Быстрый и грязный» подход для отладки / разработки, вы можете вызывать все компоненты в вашем HTML со случайной (или временной) строкой запроса. Например:

<img src="logo.png?uniqecall=20111026035500" />

, который будет выглядеть в вашем PHP-коде:

print '<img src="logo.png?uniqecall=' . date("YmdHis") . '" />';

и т.д ...

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