Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2015, 19:36   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Кэшировались определенных файлов в браузере

Средствами сервера в .htaccess
Пример:
Код:
# используем mod_expires
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault A86400    
  ExpiresByType image/x-icon A2592000
  ExpiresByType application/x-javascript A2592000
  ExpiresByType text/css A2592000
  ExpiresByType image/gif A604800
  ExpiresByType image/png A604800
  ExpiresByType image/jpeg A604800
  ExpiresByType text/plain A604800
  ExpiresByType application/x-shockwave-flash A604800
  ExpiresByType video/x-flv A604800
  ExpiresByType application/pdf A604800
  ExpiresByType text/html A900
</IfModule>

# используем mod_header
<IfModule mod_header.c>
  # 3 Month
  <FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf)$">
    Header set Cache-Control "max-age=7257600"
  </FilesMatch>
  # 1 Week
  <FilesMatch "\.(js|css|pdf|txt)$">
    Header set Cache-Control "max-age=604800"
  </FilesMatch>
  # 10 Minutes
  <FilesMatch "\.(html|htm)$">
    Header set Cache-Control "max-age=600"
  </FilesMatch>
  # NONE
  <FilesMatch "\.(pl|php|cgi|spl)$">
    Header unset Cache-Control
    Header unset Expires
    Header unset Last-Modified
    FileETag None
    Header unset Pragma
  </FilesMatch>
</IfModule>
А как сделать чтобы кэшировались в браузере только определенные файлы, например все файлы такого то расширения в определенной папке?
Что то вроде этого?
Код:
<IfModule mod_header.c>
  # 3 Month
  <FilesMatch "Путь\.(jpg)$">
    Header set Cache-Control "max-age=7257600"
  </FilesMatch>
Будут кэшироваться все файлы jpg в папке "Путь"?
И при изменении пути фалы уже будут считаться новыми и будут заново кэшироваться.

Последний раз редактировалось Illusiony; 09.03.2015 в 21:08.
Illusiony вне форума Ответить с цитированием
Старый 13.03.2015, 21:04   #2
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Посоветует кто? Или в .htaccess тока по всем файлам определенного расширения?

Последний раз редактировалось Illusiony; 14.03.2015 в 11:49.
Illusiony вне форума Ответить с цитированием
Старый 14.03.2015, 11:49   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Для теста создал в test1.ru\www\1\
CS1_113.jpg

В test1.ru\www\Test_chached\
CS1_069.jpg
.htaccess


Код:
# используем mod_expires
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault A86400    
  ExpiresByType image/jpeg A604800
   ExpiresByType image/jpg A604800
</IfModule>
test_chached.php

Код:
<?php

echo"
<html>
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
  <title>AutoPick beta игрока</title>
  <style type='text/css'>
     pre { font-family: serif }
  </style>
</head>
<body>

<h2>AutoPick beta игрока:

</h2>

<a href='' ><img src='CS1_069.jpg' ></a>
<a href='' ><img src='http://test1.ru/1/CS1_113.jpg' ></a>

</body>
</html>";
//phpinfo();
?>
Скачал модуль mod_expires.so в файле конфига апача раскомментировал данный модуль, перезагрузил апач.
Запуская скрипт test_chached.php в firefox firebug.

Как мне понять что кэширование работает?
Если закрыть браузер и заново запустить скрипт то во вкладе сеть 0 запросов 0 байт
Перезагружаю скрипт 2 этих рисунка берутся из кэша и скрипт показывает 380 байт

Имеет ли смысл место размещения фала .htaccess ? Т.е. я разместил его в папке с одним рисунком jpg чтобы только он кэшировался, а второй рисунок в другой папке без .htaccess. чтобы не кэшировался.

Вот теперь не пойму вообще:
1) работает ли у меня модуль mod_expires.so
2) если в .htaccess кэширование jpg как я сделал оно распространяется на все jpg в данной папке или на всем сервере?
3) почему в firefox firebug при закрытии браузера и последующем запуске скрипта скрипт отрабатывает, но вообще все по 0 не пишет сколько скрипт весит, откуда взяты рисунки( кэш или сайт)?

Последний раз редактировалось Illusiony; 14.03.2015 в 11:52.
Illusiony вне форума Ответить с цитированием
Старый 14.03.2015, 14:36   #4
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Эх... опять двадцать пять, вы оптимизируете то чего еще не нужно оптимизировать, думаете о том о чем пока не нужно думать.

Вот вам совет, пишите больше кода, больше читайте..

Вообщем если конструктивно:

1) Используйте связку apache + nginx

apache - занимается раздачей динамики
nginx - занимается статикой - это он умеет делать лучше.

И все на этом больше не заморачивайтесь! двигайтесь дальше пишите свой проект когда вы увидите по статистики что у вас проблемы со статикой мы вместе будем думать что с этим делать.

Касательно вашего вопроса как кешировать определенный каталог можно почитать про mod_expires.c

пример:

Код:
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"

    ExpiresByType image/gif "access plus 2 months"
    ExpiresByType image/jpeg "access plus 2 months"
</IfModule>
Так же почитайте тут И это


В конце концов можно кешировать все, а где не надо посылать заголовок с запретом на кеширование, вариантов кучу, но оно вам не нужно.

Вообщем вывод, ставьте связку apache + nginx и работайте дальше, не тратьте время.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 14.03.2015, 15:16   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Stanislav, спасибо еще раз Вам, ок займусь чисто замещением проекта и его тестированием.
Отдельное спасибо за лояльность во всех вопросах.
Привычка преждевременных действий меня сильно завладела.
В основном это связано с тем что, если либо нету достаточного времени на то, что действительно нужно ( то есть сесть и за 1-2 раза сделать , а не растягивать на недели). Поэтому пытаюсь параллельно хоть что то делать, что с большой вероятностью понадобится.
Я понимаю, что все таки, это не правильно, нужно отучать себя так поступать.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос открытия файлов и вывода на печать определенных листов книги AxE_tmb Microsoft Office Excel 0 22.10.2013 10:01
Создание файлов *.txt с внесением в них определенных данных из файла Excel SmokyCheetah Microsoft Office Excel 3 13.09.2011 11:50
Вставка определенных данных AllenJ Microsoft Office Excel 3 18.01.2011 12:11
Как сделать так, чтобы в моем браузере новое окно страницы открывалось в моем-же браузере??? Somilya Помощь студентам 6 22.12.2009 21:56
Список ListBox из файла и открытие файлов в браузере oduvan4ik Общие вопросы Delphi 3 02.03.2009 23:35