Kautrīgs glizijs - brauciet ar 4 U [Tikai audio]

Es tikko savā vietnē palaidu Google lapas ātruma pārbaudi, un viena no lietām, ko tā ieteica darīt, ir pārlūka kešatmiņas izmantošana. Es jau veicu pārlūka kešatmiņu lielākajai daļai lielu attēlu un citu aktīvu, kas bieži mainās, taču tas arī liek domāt, ka es pievienoju pārlūka kešatmiņu:

  • UI .png attēli
  • Minimāla CSS
  • Minimālais JS
  • Google Analytics JS tags no Google CDN (pašlaik kešatmiņa 2 stundas)
  • Trešās puses JS izsekošanas tags no trešās puses CDN (pašlaik 4 stundu kešatmiņa)

Pēdējos divos, kurus mitina trešās puses, es nevaru iestatīt kešatmiņas iestatījumus.

Pirmajos 3 aizzīmēs es patiešām nevēlos tos iestatīt kešatmiņā, it kā, piemēram, vietnes navigācijā būtu izmaiņas, HTML, CSS, JS un UI grafika būtu jāatjaunina, ja Lietotājam bija daži no kešatmiņā saglabātajiem, tas varētu nozīmēt, ka viņi sniedz HTML, kas nav sinhronizēts ar kešatmiņā saglabātajiem JS, CSS, UI PNG.

Vai ir veids, kā to apiet, spējot iestatīt kaut ko pārlūka vai servera pusi, kas ļautu man saglabāt kešatmiņā JS, CSS, UI PNG, bet, ja / kad es veicu izmaiņas un tie ir jāatjaunina, es varētu izlikt paziņojums, kas ļauj visiem apmeklētāju pārlūkiem uzzināt, kā vēlreiz lejupielādēt visus aktīvus un neizmantot iepriekšējo kešatmiņu?

Gadījumā, ja tiek jautāts: Servera ziņā vietnē darbojas Apache.

  • Jūs meklējat "kešatmiņas atdalīšana": versiju numuru ievietošana īpašuma URL.
  • Sveiki, @StephenOstermiller, es domāju domāt par versiju numuru ievietošanu aktīvu URL / nosaukumos, lai to pārvarētu, taču šķiet diezgan netīrs pārvaldīt, lai atjauninātu faila nosaukumu. Man būtu jāatjaunina arī dažādi koda kodi, norādot jauno faila nosaukumu. Ja mainīju 10 failus, iespējams, būs jāmaina vairāk nekā 30 kodu.
  • Versijas numura kešatmiņas atcelšana vislabāk darbojas ar statiskām vietnēm, kuras nodrošina veidņu lapas no ietvara vai CMS. Jūs parasti piezvanīsit kādam kodam, lai rakstītu to URL URL, kuriem būtu pievienoti versiju numuri. Tādā veidā ir viena centrālā vieta, kas mainās. Kad es to iestatīju, parasti versijas numurs ir jāiestata, pamatojoties uz būvēšanas laiku un datumu, tādā veidā tas tiek automātiski atjaunināts katrā laidienā.
  • @StephenOstermiller Jā CMS sistēmā, kas būtu vienkārši. Diemžēl es pārvaldu stingri kodētu vietni, kas manā dev vidē izmanto gruntēšanu dažām statiskām veidnēm un JS + CSS samazināšanai utt. Vai ir kaut kas cits, ko varētu izdarīt servera pusē, piemēram, iestatīt jaunu apache kārtulu?
  • Vai izmantojat CMS vai CDN pakalpojumus? Iespējams, vēlēsities izpētīt “kešatmiņas tīrīšanu”

Es piekrītu Stefanam, ka "kešatmiņas atlaišana" ir pareizais ceļš.

Vai ir kaut kas cits, ko varētu izdarīt servera pusē, piemēram, jauna apache noteikuma iestatīšana

Varat izmantot apache pārrakstīšanas moduli (pārliecinieties, vai mod_rewrite ir instalēts), lai kartētu URL nosaukumu, sākot ar kaut ko kopīgu, un piesaistītu to faktiskajam failam.

Piemēram, savā .htaccess vietnē varat izmantot šādu kārtulu:

RewriteRule ^path/to/imagename-([0-9]+).jpg$ /path/to/image.jpg [L] 

Šajā noteikumā, ja kāds ievada http://example.com/path/to/imagename-12345.jpg, fails /path/to/image.jpg tiek ielādēts un pārlūkprogramma apstrādā attēlu. “([0-9] +)” nozīmē jebkuru skaitli un jebkuru ciparu skaitu. Tas var norādīt versijas numuru. Tātad pieprasījumi uz http://example.com/path/to/imagename-1.jpg un http://example.com/path/to/imagename-2.jpg liks serverim ielādēt / path / to / image .jpg, bet klienta pārlūks to nezinās. Tiešsaistē ir pieejamas daudzas apmācības par to, kā rakstīt regulāras izteiksmes apache.

Tagad, kad to pazaudējāt, varat darīt to pašu ar HTML failiem un citiem failiem. Šis .htaccess noteikums ir piemērs:

RewriteRule ^path/to/htmlname-([0-9]+).html$ /path/to/html.html [L] 

Tad vienīgās izmaiņas, kas jums jāveic kodā, ir visas atsauces uz aktīviem.

Es personīgi ieteiktu servera puses valodu un iestatītu mainīgos aktīvu failos, lai atsauce būtu jāmaina tikai vienu reizi, nevis 100 reizes.

Piemēram, ņemiet vērā šo HTML fragmentu:

This is a bone and we got lots of bones so check out our bones today or check bones tomorrow.

Četras saites nonāk tieši tajā pašā HTML failā, un būtu sāpīgi tos visus aizstāt pa vienam. Tagad apsveriet to pašu fragmentu PHP:

<?php $url='bones.html'; 

Tas ir kauls, un mēs saņēmām daudz kaulu, tāpēc pārbaudiet mūsu kaulus šodien vai pārbaudiet rīt.

?> var13 ->

Tagad šeit viss, kas jums jādara, ir vienreiz nomainīt bone.html un $url mainīgais tūlīt sakritīs ar jauno vērtību.

** ATJAUNINĀT **

Pateicoties komentāram un vienas nakts smadzeņu fartam, es tikko sapratu, ka daudz vienkāršāk būtu rakstīt kārtulas, lai faila pieprasījumus ar vienu un to pašu faila nosaukumu, bet atšķirīgus versiju numurus novirzītu uz to pašu failu. Es rediģēju savu atbildi, lai to atspoguļotu.

  • 1 Jūsu pārrakstītajām lietām man nav jēgas. Vai jums nevajadzētu atstāt $1 lai jūs varētu mainīt numuru, nemainot sākotnējo failu? Pretējā gadījumā pārrakstīšana nedara neko jēdzīgu.
  • Jā, es biju pārdomājusi. Ir jēga neiekļaut atsauces iegūtajā URL.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?