Как работят CloudFlare или CDN като цяло и мога ли да ги принудя да получат моето актуализирано статично съдържание?

Бих искал да включа CloudFlare за моя WordPress сървър, но все още правя промени много често. CloudFlare казва, че кешира статични файлове (javascript, css, изображения и т.н.), така че предполагам, че ако направя промени в тези файлове и ги запазя на моите сървъри, те няма да се покажат променени на техните (поне за докато).

Ако направя промени в тези файлове, те в крайна сметка ще се разпространят ли в техните сървъри? Колко време отнема това?

Правя малкия трик да променя src на моите css файлове от "my.css" на "my.css?v=1.1" и "my.css?v=1.2" и т.н., когато правя промени, така че принудително вашия браузър, за да получи по-новата версия на файла, защото го подвежда да мисли, че е нов файл. Това ще работи ли и с CloudFlare, или заобикаля това?

Благодаря ти.


person jas7457    schedule 30.08.2013    source източник


Отговори (2)


Имате няколко опции за управление на това колко дълго активите се кешират.

Ако отидете на domain > cloudFlare Setting > Performamce Settings > Minimum expire TTL
можете да изберете между 2 часа и 1 година. Това е глобална настройка на сайта.

Ако отидете на domain > page rules, можете да персонализирате кеша и други подробности за подраздел на вашия сайт. Така че това може да са вашите CSS и JS директории или може да са единични файлове.

Без значение какви настройки използвате, ако отидете на domain > cloudflare settings > purge cache, можете да изчистите отделни активи или целия кеш на сайта

Все още можете да използвате своя метод за създаване на CSS версии. Една подробност, която трябва да наблюдавате, е, че ако използвате my.css?v=1.1 и искате cloudflare да кешира това за подобрена производителност, трябва да отидете на domain > cloudFlare Setting > Performamce Settings > Caching Level и задайте това на агресивен.

Ако не го направите, посетителите ще получат CSS файла от вашия сървър, а не от CloudFlare.

Надявам се това да помогне!

person David Taiaroa    schedule 01.09.2013

CloudFlare има две опции за конфигуриране на кеширане. По подразбиране е конфигуриран в техния контролен панел. Тук можете да зададете опции като „Кеширане на всичко“ и да контролирате максималната възраст.

Но CloudFlare също зачита заглавките на вашето съдържание. Предпочитам да ги използвам, тъй като ми позволяват най-подробния контрол. Въпросната заглавка е Cache-Control. Ако тази заглавка не присъства, ще се използва опцията от контролния панел.

Ако изпратите заглавката Cache-Control: no-cache, заявката винаги ще проверява вашия първоначален сървър, за да види дали съдържанието е актуално. Обърнете внимание, че това ще накара всяка заявка да достигне вашия източник. Това ще забави вашите отговори, въпреки че през голяма част от времето ще можете да обслужвате 304 NOT MODIFIED отговор, така че може да спестите малко честотна лента.

Ако изпратите заглавката Cache-Control: max-age=3600 CloudFlare ще обслужва кешираното съдържание за най-много max-age секунди (в този случай 1 час) след заявката, преди да провери вашия първоначален сървър.

Има много повече опции с тази заглавка, но това са основите.

Правя малкия трик да променя src на моите css файлове от "my.css" на "my.css?v=1.1" и "my.css?v=1.2" и т.н., когато правя промени, така че принудително вашия браузър, за да получи по-новата версия на файла, защото го подвежда да мисли, че е нов файл. Това ще работи ли и с CloudFlare или го заобикаля?

Това пак ще работи. HTTP разглежда всеки URL като различен обект, така че новият URL ще трябва да бъде извлечен.

person Kevin Cox    schedule 15.04.2014