Питання для нового користувача "CloudFlare" для вас:
Передумови: Сторінки HTML, подані моїм початковим сервером, ніколи не змінюються. Весь динамічний контент завантажується через JavaScript після завантаження сторінки у браузер користувача. Динамічний вміст, отриманий JavaScript, частково залежить від рядка запиту URL, але сам рядок запиту не впливає на початково завантажений вміст HTML. Отже, наведені нижче URL-адреси генерують абсолютно один і той самий HTML від початку, перш ніж діяти JavaScript у браузері:
https://www.example.com/private/my-investments?portfolioID=296
https://www.example.com/private/my-investments?portfolioID=325
https://www.example.com/private/my-investments?portfolioID=319
ЗАПИТАННЯ: Враховуючи, що CloudFlare не кешує HTML за замовчуванням, як я будувати свої правила сторінки, щоб одна кешована копія https://www.example.com/private/my-investments? evidenceanyValue] поверталася всім користувачам ? Ось що я спробував:
"КЕШЕ ВСЕ:" Використання директиви "Кеш все" призводить до кешування мого HTML (хорошого), але він використовує весь рядок запиту як частину ключа кешу (неправильно). Тож якщо користувач потрапляє на таку URL-адресу ...
https://www.example.com/private/my-investments?portfolioID=296
... а потім через десять секунд потрапляє на ту саму URL-адресу іншим рядком запиту, як-от:
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare трактує цей останній запит як кеш-код MISS (cf-cache-status: MISS) і знову потрапляє на мій початковий сервер. Це незважаючи на той факт, що HTML, що повернувся з початкового коду, ідентичний для обох URL-адрес.
"IGNORE QUERY STRING CACHING:" Я впевнено думав, що вирішу цю проблему, вибравши опцію "IGNORE QUERY STRING CACHING". Але при використанні цього параметра в Правилі сторінки, жоден HTML не кешується; Кешуються лише файли .js, .css та .png. І ще раз моє походження потрапляє під кожен виклик HTML-даних. :(
Я відчуваю, що мені, мабуть, не вистачає чогось очевидного. Будь-які думки?
ОНОВЛЕННЯ : Була ідея, якою я хочу керувати вами. Чи можу я вирішити цю проблему, змінивши внутрішню схему URL-адреси на "#" замість "?" Тож замість такої URL-адреси, як ...
https://www.example.com/private/my-investments?portfolioID=296
..Я б використав щось на кшталт:
https://www.example.com/private/my-investments#portfolioID=296
Це завадить взагалі передати параметри рядка запиту до CloudFlare ... Як ви думаєте?
Фестус