За последние 24 часа нас посетили 55047 программистов и 1717 роботов. Сейчас ищут 910 программистов ...

Как отключить кеширование JS и CSS?

Тема в разделе "Прочие вопросы по PHP", создана пользователем alexey_baranov, 28 янв 2011.

  1. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    Привет!

    Очень надо отключить кеш js и css на время девелопа.

    сделал внутри html
    pragma once cach none что-то такое и страница перестала кешироваться, но вот js и css файлы, которые в ней подключаются по прежнему кешируются. Как это поправить?
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    PHP:
    1. <link rel="stylesheet" href="http://site/path/style.css?t=<?php echo(microtime(true)); ?>" type="text/css" />
    ?
     
  3. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    1. Плагин типа Web Developer для FF и Хрома позволяет быстро отключать кеш через меню
    2. Вообще правильно изначально подставлять код против кеширования, в том числе и в продакшене. Самый банальный вариант - подстановка mtime файла. Лично я использую двойную схему - в режиме разработки mtime, в режиме продакшена - ревизия файла по svn (заранее при деплое готовится файл с ревизиями), что бы не делать лишние stat-ы по файлам, ну и деплой новой версии не выбьет из кеша те файлы, которые реально не менялись.
     
  4. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Самый действенный вариант у sobachnik, а по всем правилам, нужно в заголовке файла передавать время кэширования, подробнее в гугле, просто у sobachnik, файл будет обновлятся каждый раз, что приведет к лишней нагрузке на сервер, хотя можно туда подставлять скажем время изменения файла, тогда, файл уйдет из кеша, как только ты его перезальешь
     
  5. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    в заголовке какого файла, js и css??
     
  6. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    Ну дык, а я и не догодался. Спасибо!
     
  7. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    alexey_baranov
    Да, вопрос в том, чем их выдавать)
     
  8. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    karlozzz
    и чем же их выдать?
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    http://httpd.apache.org/docs/2.0/mod/mod_expires.html ну и для nginx есть что-то такое.

    alexey_baranov
    не помню: это ты советовал доктрину2 использовать? Просто если да, то для подключения css/js-файлов тоже нужно какой-нить высокоуровневый инструмен использовать. Типа https://github.com/kriswallsmith/assetic
     
  10. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    alexey_baranov
    Можно пыхом выдавать) Просто заголовки поменять, а сами каскадные таблицы хоть из базы брать хоть из мемкэша
     
  11. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    кажись понял как

    HTML:
    1. <script src="getJS.php?fileName=jquery.js"></script>
    #getJS.php

    PHP:
    1. <?php
    2. header("pragma","no-cache");
    3. require $_REQUEST["fileName"];
    4.  
    5.  
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    это же дрочилово - отдавать статику через динамический пых
     
  13. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    Koc
    А ты как делаешь, когда тебе надо запретить кеширование?
     
  14. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    alexey_baranov
    по-мойму где-то видел, как через .htaccess выставляют заголовки
     
  15. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    alexey_baranov
    на dev-окружении я добавляю к QUERY_STRING рандомные числа


    а вообще я ж говорю - нужно использовать более продвинутые средства для управления assets. Глянь вот это например http://yiiframework.ru/doc/cookbook/ru/core.assets , ну и ту ссылку, что я до этого давал.