2016-04-20 7 views
0

Im довольно новый для написания сценариев и кодирования. Теперь я заинтересовался ускорением моего сайта. Для этого я хотел бы начать использовать кеширование браузера.Как я могу начать использовать отпечатки пальцев Etag для моего сайта Opencart?

Я прочитал несколько вещей, но теперь я стараюсь принять правильное решение.

Насколько я понимаю, что есть три варианта:

-expires -max возраст -Etag (при использовании максимального возраста)

Первые два не подходят для веб-сайта электронной коммерции (opencart btw), на мой взгляд. Но гораздо проще реализовать, чем Etag, насколько я понимаю.

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

Итак, в заключение я хочу пойти на Etag, но я не знаю, с чего начать! Есть ли кто-нибудь (возможно, с опытом Opencart?), Кто может помочь мне встать на пути?

Заранее благодарен!

С уважением,

Джордж

ответ

1

ETags не так уж сложно реализовать. Вот фрагмент кода для вашего файла .htaccess, который позволит ETags для ваших изображений и других файлов, которые не изменяются, что часто:

# ETags Settings (for Cache purposes) 
<ifModule mod_headers.c> 
<FilesMatch \.(?i:jpeg|jpg|gif|png|css|js|xml)$> 
    FileETag MTime Size 
</FilesMatch> 

<FilesMatch \.(?i:php)$> 
    Header unset ETag 
    Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate" 
    Header set Pragma "no-cache" 
    FileETag None 
</FilesMatch> 
</ifModule> 

# Expires Settings 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault "access plus 1 month" 

# Images 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
</IfModule> 

Просто немного фона (хотя я уверен, что вы уже знаете) и Объяснение:

ETags более надежны, чем истекает, из-за того, что браузеры, соблюдающие директиву expire, не изменят изображение/файл для срока службы, независимо от того, имеются ли какие-либо изменения. Однако ETags можно настроить, чтобы указать браузер, когда нужно изменить изображение.

В коде приведенного выше FileETag время изменения размера будет иметь браузер Обновление изображения, CSS, JS и XML файлы (я: это сделать матч регистронезависимого), если есть какие-либо изменения в размере или модификациях время. И лучшая часть: он заменяет директивы истечения!

Кроме того, приведенный выше код отключит ETags для файлов php из-за динамического характера содержимого.

Я включил директивы expires для изображений, потому что во время написания этого мною многие контролеры скорости и валидаторы будут ранжировать вас немного, чтобы не иметь их, даже если установлены ETags.

+0

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

+0

Надеюсь, это сработает для вас :) – Kirito