Webããã©ãŒãã³ã¹ãã°ããŒãã«ã«æé©åããããã®ã广çãªCSSãã£ãã·ã¥ç¡å¹åã«ãŒã«ã®å®è£ ã¬ã€ãã
CSSç¡å¹åã«ãŒã«ïŒWebããã©ãŒãã³ã¹åäžã®ããã®ãã£ãã·ã¥ç¡å¹åãã¹ã¿ãŒã¬ã€ã
å€åã®æ¿ããWebéçºã®äžçã§ã¯ãã·ãŒã ã¬ã¹ã§é«éãªãŠãŒã¶ãŒäœéšãæäŸããããšãæãéèŠã§ãããããéæããããã®éèŠã§ãããªããèŠéããããã¡ãªåŽé¢ããç¹ã«ã«ã¹ã±ãŒãã£ã³ã°ã¹ã¿ã€ã«ã·ãŒãïŒCSSïŒã«ããã广çãªãã£ãã·ã¥ç¡å¹åã§ãããŠãŒã¶ãŒãããªãã®ãŠã§ããµã€ãã蚪ãããšããã©ãŠã¶ã¯ç¹å®ã®ãã¡ã€ã«ãããŒã«ã«ã«ä¿åããŸããããã¯ãã£ãã·ã³ã°ãšããŠç¥ãããããã»ã¹ã§ããããã«ãããã¢ã»ãããåããŠã³ããŒãããå¿ èŠæ§ãæžãããã®åŸã®èšªåãé«éåãããŸããããããCSSãæŽæ°ãããšãå€ãããŒãžã§ã³ããŠãŒã¶ãŒã®ãã£ãã·ã¥ã«æ®ãç¶ãã衚瀺ã®äžæŽåãã¬ã€ã¢ãŠãã®åŽ©ããåŒãèµ·ããå¯èœæ§ããããŸããããã§ãCSSç¡å¹åã«ãŒã«ãããåºçŸ©ã«ã¯CSSã®ãã£ãã·ã¥ç¡å¹åæŠç¥ãšããæŠå¿µãéåžžã«éèŠã«ãªããŸãã
ãã©ãŠã¶ãã£ãã·ã³ã°ãšCSSãçè§£ãã
ãã©ãŠã¶ãã£ãã·ã³ã°ã¯ãWebããã©ãŒãã³ã¹ãåäžãããåºæ¬çãªã¡ã«ããºã ã§ãããã©ãŠã¶ãCSSãã¡ã€ã«ã®ãããªãªãœãŒã¹ãèŠæ±ãããšããŸãããŒã«ã«ãã£ãã·ã¥ã確èªããŸããæå¹ã§æéåãã§ãªããã¡ã€ã«ã®ã³ããŒãååšããã°ããã©ãŠã¶ã¯ãããçŽæ¥æäŸãããããã¯ãŒã¯ãªã¯ãšã¹ããåé¿ããŸããããã«ãããèªã¿èŸŒã¿æéãšãµãŒããŒè² è·ãå€§å¹ ã«åæžãããŸãã
ãã£ãã·ã³ã°ã®æå¹æ§ã¯ããµãŒããŒããéä¿¡ãããHTTPããããŒã«ãã£ãŠç®¡çãããŸããäž»èŠãªããããŒã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- Cache-Control: ããã¯ãã£ãã·ã³ã°ãæã现ããå¶åŸ¡ãããã£ã¬ã¯ãã£ãã§ãã
max-age
ãpublic
ãprivate
ãno-cache
ãªã©ã®ãã£ã¬ã¯ãã£ãã¯ããªãœãŒã¹ãã©ã®ããã«ããããŠã©ã®ãããã®æéãã£ãã·ã¥ã§ããããæç€ºããŸãã - Expires: ã¬ã¹ãã³ã¹ãå€ããªããšèŠãªãããæ¥æãæå®ããå€ãHTTPããããŒã§ããäžè¬çã«
Cache-Control
ãExpires
ãããåªå ãããŸãã - ETag (ãšã³ãã£ãã£ã¿ã°): ãªãœãŒã¹ã®ç¹å®ããŒãžã§ã³ã«å²ãåœãŠãããäžæã®èå¥åã§ãããã©ãŠã¶ã¯ãã®ã¿ã°ã
If-None-Match
ããããŒã§ãµãŒããŒã«éä¿¡ã§ããŸãããªãœãŒã¹ã倿ŽãããŠããªããã°ããµãŒããŒã¯304 Not Modified
ã¹ããŒã¿ã¹ã§å¿çãã垯åå¹ ãç¯çŽããŸãã - Last-Modified: ETagãšäŒŒãŠããŸãããã¿ã€ã ã¹ã¿ã³ãã䜿çšããŸãããã©ãŠã¶ã¯ããã
If-Modified-Since
ããããŒã§éä¿¡ããŸãã
CSSãã¡ã€ã«ã«ãšã£ãŠãç©æ¥µçãªãã£ãã·ã³ã°ã¯éçãµã€ãã«ã¯æçã§ãããããããã¶ã€ã³ã®æŽæ°ãé »ç¹ã«è¡ããããµã€ãã§ã¯ãããã劚ãã«ãªãããšããããŸãããŠãŒã¶ãŒãããªãã®ãµã€ãã蚪ãããšãããã©ãŠã¶ã¯ãã£ãã·ã¥ããå€ãCSSãã¡ã€ã«ãèªã¿èŸŒãã§ããå¯èœæ§ããããããã¯ææ°ã®ãã¶ã€ã³å€æŽãåæ ããŠããŸãããããã¯ã質ã®äœããŠãŒã¶ãŒäœéšã«ã€ãªãããŸãã
課é¡ïŒCSSã®æŽæ°ãæ°ä»ãããªããšã
CSSãã£ãã·ã¥ç¡å¹åã®æ žå¿çãªèª²é¡ã¯ãã¹ã¿ã€ã«ãæŽæ°ããéã«ããŠãŒã¶ãŒãææ°ããŒãžã§ã³ã確å®ã«åãåããããã«ããããšã§ããé©åãªç¡å¹åãè¡ãããªããšããŠãŒã¶ãŒã¯æ¬¡ã®ãããªåé¡ã«çŽé¢ããå¯èœæ§ããããŸãïŒ
- å€ãã¬ã€ã¢ãŠããã¹ã¿ã€ãªã³ã°ã衚瀺ãããã
- CSSã®äžæŽåã«ããæ©èœãå£ããã
- ãµã€ãã®ãããã§ãã·ã§ãã«ãªå€èгãæãªãèŠèŠçãªäžå ·åãçºçããã
ããã¯ãããŸããŸãªãããã¯ãŒã¯ç¶æ³ããã©ãŠã¶èšå®ãããµã€ãã«ã¢ã¯ã»ã¹ããŠããå¯èœæ§ã®ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠç¹ã«åé¡ãšãªããŸããå ç¢ãªãã£ãã·ã¥ç¡å¹åæŠç¥ã¯ãå Žæã以åã®é²èЧ履æŽã«é¢ãããããã¹ãŠã®ãŠãŒã¶ãŒããµã€ãã®ææ°ã®ã¹ã¿ã€ãªã³ã°ã確å®ã«è¡šç€ºã§ããããã«ããŸãã
CSSãã£ãã·ã¥ç¡å¹åã®å®è£ ïŒæŠç¥ãšãã¯ããã¯
CSSãã£ãã·ã¥ç¡å¹åã®ç®æšã¯ããªãœãŒã¹ã倿Žããããã£ãã·ã¥ãããããŒãžã§ã³ããã¯ãæå¹ã§ã¯ãªãããšããã©ãŠã¶ã«ç¥ãããããšã§ããããã¯äžè¬çã«ãã£ãã·ã¥ãã¹ãã£ã³ã°ãšåŒã°ããŸãã
1. ããŒãžã§ãã³ã°ïŒã¯ãšãªã¹ããªã³ã°æ¹åŒïŒ
æãç°¡åã§äžè¬çãªæ¹æ³ã®äžã€ã¯ãCSSãã¡ã€ã«ã®URLã«ããŒãžã§ã³çªå·ãã¿ã€ã ã¹ã¿ã³ããã¯ãšãªãã©ã¡ãŒã¿ãšããŠè¿œå ããããšã§ããäŸãã°ïŒ
<link rel="stylesheet" href="/css/style.css?v=1.2.3">
style.css
ãæŽæ°ããéã«ã¯ãããŒãžã§ã³çªå·ã倿ŽããŸãïŒ
<link rel="stylesheet" href="/css/style.css?v=1.2.4">
ä»çµã¿ïŒ ãã©ãŠã¶ã¯ãç°ãªãã¯ãšãªã¹ããªã³ã°ãæã€URLãå¥åã®ãªãœãŒã¹ãšããŠæ±ããŸãããããã£ãŠãstyle.css?v=1.2.3
ãšstyle.css?v=1.2.4
ã¯å¥ã
ã«ãã£ãã·ã¥ãããŸããã¯ãšãªã¹ããªã³ã°ã倿Žããããšããã©ãŠã¶ã¯æ°ããããŒãžã§ã³ã匷å¶çã«ããŠã³ããŒãããŸãã
å©ç¹ïŒ
- å®è£ ãç°¡åã
- åºããµããŒããããŠããã
æ¬ ç¹ïŒ
- äžéšã®ãããã·ãµãŒããŒãCDNãã¯ãšãªã¹ããªã³ã°ãåé€ããããšãããããã®å Žåãã®æ¹æ³ã¯å¹æããªããªããŸãã
- äžéšã®ãã£ãã·ã³ã°ã¡ã«ããºã ã¯ã¯ãšãªã¹ããªã³ã°ä»ãã®URLã广çã«ãã£ãã·ã¥ããªãå¯èœæ§ããããããæ£ããèšå®ããªããšããããªããã©ãŒãã³ã¹ãããã«ã€ãªããããšããããŸãã
2. ãã¡ã€ã«åããŒãžã§ãã³ã°ïŒãã£ãã·ã¥ãã¹ãã£ã³ã°ããããã¡ã€ã«åïŒ
ããå ç¢ãªã¢ãããŒãã¯ãããŒãžã§ã³èå¥åããã¡ã€ã«åã«çŽæ¥çµã¿èŸŒãããšã§ããããã¯å€ãã®å Žåããã«ãããã»ã¹ãéããŠéæãããŸãã
äŸïŒ
å ã®ãã¡ã€ã«ïŒ
style.css
ãã«ãããã»ã¹åŸïŒäŸïŒWebpackãRollupãGulpã䜿çšïŒïŒ
<link rel="stylesheet" href="/css/style.a1b2c3d4.css">
ä»çµã¿ïŒ style.css
ã®å
容ã倿Žããããšããã«ãããŒã«ã¯ãã¡ã€ã«ã®å
容ããæŽŸçããäžæã®ããã·ã¥ãååã«å«ãæ°ãããã¡ã€ã«ãçæããŸããHTMLã®åç
§ã¯ããã®æ°ãããã¡ã€ã«åãæãããã«èªåçã«æŽæ°ãããŸããURLèªäœã倿Žãããããããã©ãŠã¶ããããããã£ãã·ã³ã°å±€ã«ãšã£ãŠçŽãããªãæ°ãããªãœãŒã¹ãšãªãããã®æ¹æ³ã¯éåžžã«å¹æçã§ãã
å©ç¹ïŒ
- ãã¡ã€ã«åã®å€æŽã匷åãªãã£ãã·ã¥ãã¹ãã£ã³ã°ä¿¡å·ãšãªããããéåžžã«å¹æçã
- ãããã·ãµãŒããŒã«ããã¯ãšãªã¹ããªã³ã°ã®åé€ã®åœ±é¿ãåããªãã
- CDNãšã·ãŒã ã¬ã¹ã«é£æºããã
- ãã¡ã€ã«åãã³ã³ãã³ãã«çŽã¥ããŠããããã
Cache-Control
ããããŒã«ããé·æãã£ãã·ã³ã°ã®å©ç¹ã掻çšã§ããã
æ¬ ç¹ïŒ
- ãã«ãããŒã«ãã¢ã»ãã管çã·ã¹ãã ãå¿ èŠã
- åæèšå®ãããè€éã«ãªãå Žåãããã
3. HTTPããããŒãšCache-Controlãã£ã¬ã¯ãã£ã
URLã倿Žãããšããæå³ã§ã®çŽæ¥çãªãç¡å¹åã«ãŒã«ãã§ã¯ãããŸããããHTTPããããŒãæ£ããèšå®ããããšã¯ããã©ãŠã¶ãäžéãã£ãã·ã¥ãCSSãã©ã®ããã«ãã£ãã·ã¥ãããã管çããäžã§éåžžã«éèŠã§ãã
Cache-Control: no-cache
ã®äœ¿çšïŒ
CSSãã¡ã€ã«ã«Cache-Control: no-cache
ãèšå®ãããšããã©ãŠã¶ã¯ãã£ãã·ã¥ãããããŒãžã§ã³ã䜿çšããåã«ããµãŒããŒã§ãªãœãŒã¹ãåæ€èšŒããªããã°ãªããªãããšãäŒããŸããããã¯éåžžãETag
ãLast-Modified
ããããŒã䜿çšããŠè¡ãããŸãããã©ãŠã¶ã¯æ¡ä»¶ä»ããªã¯ãšã¹ãïŒäŸïŒIf-None-Match
ãIf-Modified-Since
ïŒãéä¿¡ããŸãããªãœãŒã¹ã倿ŽãããŠããªããã°ããµãŒããŒã¯304 Not Modified
ã§å¿çãã垯åå¹
ãç¯çŽããŸãã倿ŽãããŠããã°ããµãŒããŒã¯æ°ããããŒãžã§ã³ãéä¿¡ããŸãã
ãµãŒããŒèšå®äŸïŒNginxïŒïŒ
location ~* \.css$ {
add_header Cache-Control "public, max-age=31536000, no-cache";
expires 1y;
}
ãã®Nginxã®äŸã§ã¯ãmax-age=31536000
ïŒ1幎ïŒãé·æãã£ãã·ã³ã°ã瀺åããŠããŸãããno-cache
ãåæ€èšŒã匷å¶ããŸãããã®çµã¿åããã¯ããã£ãã·ã³ã°ã掻çšãã€ã€ãåæ€èšŒæã«æŽæ°ãååŸãããããšãä¿èšŒããããšãç®çãšããŠããŸãã
å©ç¹ïŒ
- æ¯åå®å šãªããŠã³ããŒãã匷å¶ããããšãªãã鮮床ãä¿èšŒããã
- ãã¡ã€ã«ã倿ŽãããŠããªãå Žåã垯åå¹ ã®äœ¿çšéãåæžããã
æ¬ ç¹ïŒ
- ãµãŒããŒãµã€ãã§ã®æ éãªèšå®ãå¿ èŠã
no-cache
ã¯åæ€èšŒã®ããã«ãããã¯ãŒã¯ã®ã©ãŠã³ãããªããã䌎ããããçã«äžå€ãªãã¡ã€ã«åãšæ¯èŒããŠã¬ã€ãã³ã·ãå¢å ããå¯èœæ§ãããã
4. åçãªCSSçæ
ãŠãŒã¶ãŒã®å¥œã¿ãããŒã¿ã«åºã¥ããŠCSSã倿Žãããå¯èœæ§ã®ããéåžžã«åçãªãŠã§ããµã€ãã§ã¯ãCSSããã®å Žã§çæããããšãéžæè¢ã«ãªããŸãããããããã®ã¢ãããŒãã¯éåžžãããã©ãŒãã³ã¹ã«åœ±é¿ãäžãããã£ãã·ã³ã°ã®åé¡ãé¿ããããã«æ éãªæé©åãå¿ èŠã§ãã
CSSãåçã«çæãããå Žåããã®åçCSSãæäŸããURLã«ãã£ãã·ã¥ãã¹ãã£ã³ã°ã¡ã«ããºã ïŒãã¡ã€ã«åãã¯ãšãªã¹ããªã³ã°ã®ããŒãžã§ãã³ã°ãªã©ïŒãé©çšãããŠããããšã確èªããå¿
èŠããããŸããäŸãã°ããµãŒããŒãµã€ãã®ã¹ã¯ãªããgenerate_css.php
ãCSSãäœæããå Žåãæ¬¡ã®ããã«ãªã³ã¯ããŸãïŒ
<link rel="stylesheet" href="/generate_css.php?v=some_dynamic_version">
å©ç¹ïŒ
- é«åºŠã«ããŒãœãã©ã€ãºãããããŸãã¯åçãªã¹ã¿ã€ãªã³ã°ãå¯èœã«ãªãã
æ¬ ç¹ïŒ
- èšç®ã³ã¹ããé«ããªãå¯èœæ§ãããã
- ãã£ãã·ã³ã°ã®ç®¡çãè€éã«ãªãå¯èœæ§ãããã
ã°ããŒãã«ãªãŒãã£ãšã³ã¹ã«é©ããæŠç¥ã®éžæ
æé©ãªæŠç¥ã¯ãå€ãã®å Žåããã¯ããã¯ã®çµã¿åãããå«ã¿ããããžã§ã¯ãã®ããŒãºãšã€ã³ãã©ã¹ãã©ã¯ãã£ã«äŸåããŸãã
- ã»ãšãã©ã®ã¢ãã³ãªã¢ããªã±ãŒã·ã§ã³ã®å ŽåïŒ ãã¡ã€ã«åããŒãžã§ãã³ã°ãäžè¬çã«æãå
ç¢ã§æšå¥šãããã¢ãããŒãã§ããWebpackãViteãRollupãªã©ã®ããŒã«ã¯ããã管çããã®ã«åªããŠããããã«ãããã»ã¹äžã«ããŒãžã§ã³ç®¡çããããã¡ã€ã«åãèªåçæããåç
§ãæŽæ°ããŸãããã®ã¢ãããŒãã¯ãé·æéã®
Cache-Control: max-age
ãã£ã¬ã¯ãã£ããšããŸã飿ºããã³ã³ãã³ãã®å€æŽãæ°ãããã¡ã€ã«åã«ãªãããšãç¥ã£ãŠããããããã©ãŠã¶ãã¢ã»ãããé·æéç©æ¥µçã«ãã£ãã·ã¥ããããšãå¯èœã«ããŸããã°ããŒãã«ãªèæ ®äºé ïŒ ãã®æŠç¥ã¯ããŠãŒã¶ãŒã®ãã©ãŠã¶ããCDNã®ãšããžãã£ãã·ã¥ãŸã§ãé ä¿¡ãã§ãŒã³ã®ã©ãããã§ãå€ãã¢ã»ãããæäŸãããå¯èœæ§ãæå°éã«æãããããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠç¹ã«å¹æçã§ãã
- ããã·ã³ãã«ãªãããžã§ã¯ãããã«ãããŒã«ãå©çšã§ããªãå ŽåïŒ ã¯ãšãªã¹ããªã³ã°ããŒãžã§ãã³ã°ãå®è¡å¯èœãªä»£æ¿æ¡ãšãªãåŸãŸãããã ããæœåšçãªãããã·ã®åé¡ã«æ³šæããŠãã ãããCDNããã£ãã·ã³ã°å±€ã«ã¯ãšãªã¹ããªã³ã°ãééãããããã«ãµãŒããŒãèšå®ããããšãéèŠã§ãã
ã°ããŒãã«ãªèæ ®äºé ïŒ ã¯ãšãªã¹ããªã³ã°ããŒãžã§ãã³ã°ã䜿çšããå Žåãç¹ã«ã°ããŒãã«CDNãå©çšããŠããå Žåã¯ã察象å°åã§åŸ¹åºçã«ãã¹ãããŠãã ãããäžéšã®å€ãããŸãã¯æŽç·ŽãããŠããªãCDNã¯ãäŸç¶ãšããŠã¯ãšãªã¹ããªã³ã°ãåé€ããå¯èœæ§ããããŸãã
- å®å
šãªããŠã³ããŒããªãã§å³ææŽæ°ãä¿èšŒããå ŽåïŒ
Cache-Control: no-cache
ãETag
ãLast-Modified
ããããŒãšçµã¿åãããŠäœ¿çšããããšã¯ãé »ç¹ã«æŽæ°ããããããã€ããŒãªå€æŽããšã«äžæã®ãã¡ã€ã«åãå¿ èŠãšããªãã¹ã¿ã€ã«ã·ãŒãã«é©ãããã©ã¯ãã£ã¹ã§ããããã¯ããµãŒããŒãµã€ãã§ããé »ç¹ã«çæãŸãã¯å€æŽãããå¯èœæ§ã®ããã¹ã¿ã€ã«ã·ãŒãã«ç¹ã«åœ¹ç«ã¡ãŸããã°ããŒãã«ãªèæ ®äºé ïŒ ããã«ã¯å ç¢ãªãµãŒããŒèšå®ãå¿ èŠã§ãããµãŒããŒãæ¡ä»¶ä»ããªã¯ãšã¹ããæ£ããåŠçããäžçäžã®ãŠãŒã¶ãŒã®ããŒã¿è»¢éãšã¬ã€ãã³ã·ãæå°éã«æããããã«é©åãª
304 Not Modified
ã¬ã¹ãã³ã¹ãéä¿¡ããŠããããšã確èªããŠãã ããã
ã°ããŒãã«ãªCSSãã£ãã·ã¥ç¡å¹åã®ããã®ãã¹ããã©ã¯ãã£ã¹
éžæããæŠç¥ã«é¢ããããããã€ãã®ãã¹ããã©ã¯ãã£ã¹ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«å¯Ÿãã广çãªCSSãã£ãã·ã¥ç¡å¹åãä¿èšŒããŸãïŒ
- ãã«ãããŒã«ã§èªååããïŒ ææ°ã®ããã³ããšã³ããã«ãããŒã«ïŒWebpackãViteãParcelãRollupïŒã掻çšããŸãããããããã¯ãã¡ã€ã«åããŒãžã§ãã³ã°ãã¢ã»ããã³ã³ãã€ã«ãHTMLã€ã³ãžã§ã¯ã·ã§ã³ãèªååããæäœæ¥ã«ãããšã©ãŒãå€§å¹ ã«åæžããå¹çãåäžãããŸãã
- ããŒãžã§ã³ç®¡çãããã¢ã»ããã®é·æãã£ãã·ã³ã°ïŒ ãã¡ã€ã«åããŒãžã§ãã³ã°ã䜿çšããå Žåã
Cache-Control: public, max-age=31536000
ã䜿çšããŠããããã®ãã¡ã€ã«ãéåžžã«é·æéïŒäŸïŒ1幎以äžïŒãã£ãã·ã¥ããããã«ãµãŒããŒãèšå®ããŸãããã¡ã€ã«åã¯ã³ã³ãã³ããšå ±ã«å€æŽããããããé·ãmax-age
ã¯å®å šã§ãããããã©ãŒãã³ã¹ã«ãšã£ãŠéåžžã«æçã§ãã - `no-cache`ãŸãã¯`must-revalidate`ã®æŠç¥çãªäœ¿çšïŒ å³ææŽæ°ãæåªå ãããéèŠãªCSSãåçã«çæãããã¹ã¿ã€ã«ã·ãŒãã«ã¯ã`Cache-Control`ããããŒã«`no-cache`ïŒETagä»ãïŒãŸãã¯`must-revalidate`ãæ€èšããŠãã ããã`must-revalidate`ã¯`no-cache`ã«äŒŒãŠããŸããããã£ãã·ã¥ãå€ããã£ãã·ã¥ãšã³ããªããªãªãžã³ãµãŒããŒã§åæ€èšŒããªããã°ãªããªãããšãå ·äœçã«äŒããŸãã
- æç¢ºãªãµãŒããŒèšå®ïŒ WebãµãŒããŒïŒNginxãApacheãªã©ïŒãšCDNã®èšå®ãããã£ãã·ã³ã°æŠç¥ãšäžèŽããŠããããšã確èªããŠãã ãããã¯ãšãªã¹ããªã³ã°ãæ¡ä»¶ä»ããªã¯ãšã¹ãã®åŠçæ¹æ³ã«çްå¿ã®æ³šæãæã£ãŠãã ããã
- ç°ãªããã©ãŠã¶ãããã€ã¹ã§ãã¹ãããïŒ ãã£ãã·ã¥ã®æåã¯ç°ãªãããšããããŸããããŸããŸãªãã©ãŠã¶ãããã€ã¹ã§ãŠã§ããµã€ãã培åºçã«ãã¹ãããç°ãªããããã¯ãŒã¯æ¡ä»¶ãã·ãã¥ã¬ãŒãããŠãç¡å¹åæŠç¥ãã°ããŒãã«ã«æåŸ éãã«æ©èœããããšã確èªããŠãã ããã
- ããã©ãŒãã³ã¹ãç£èŠããïŒ Google PageSpeed InsightsãGTmetrixãWebPageTestãªã©ã®ããŒã«ã䜿çšããŠããµã€ãã®ããã©ãŒãã³ã¹ãç£èŠãããã£ãã·ã³ã°é¢é£ã®åé¡ãç¹å®ããŸãããããã®ããŒã«ã¯ãã¢ã»ãããã©ãã ã广çã«ãã£ãã·ã¥ãããæäŸãããŠãããã«ã€ããŠã®æŽå¯ãæäŸããããšããããããŸãã
- ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒïŒ CDNã¯ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠäžå¯æ¬ ã§ããCDNããã£ãã·ã¥ãã¹ãã£ã³ã°æŠç¥ãå°éããããã«èšå®ãããŠããããšã確èªããŠãã ãããã»ãšãã©ã®ææ°ã®CDNã¯ããã¡ã€ã«åããŒãžã§ãã³ã°ãšã·ãŒã ã¬ã¹ã«é£æºããŸããã¯ãšãªã¹ããªã³ã°ããŒãžã§ãã³ã°ã®å Žåã¯ãCDNãç°ãªãã¯ãšãªã¹ããªã³ã°ãæã€URLãå¥ã ã®ã¢ã»ãããšããŠãã£ãã·ã¥ããããã«èšå®ãããŠããããšã確èªããŠãã ããã
- 段éçãªããŒã«ã¢ãŠãïŒ å€§å¹ ãªCSSã®å€æŽã«ã¯ã段éçãªããŒã«ã¢ãŠããã«ããªã¢ãªãªãŒã¹ã®ã¢ãããŒããæ€èšããŠãã ãããããã«ããããŸãå°æ°ã®ãŠãŒã¶ãŒã«å€æŽãå±éããåé¡ãç£èŠãããã®åŸåŸã ã«å šãŠãŒã¶ãŒããŒã¹ã«å±éããããšã§ãæœåšçãªãã£ãã·ã¥é¢é£ã®ãã°ã®åœ±é¿ãæå°éã«æããããšãã§ããŸãã
é¿ããã¹ãäžè¬çãªèœãšã穎
CSSãã£ãã·ã¥ç¡å¹åãå®è£ ããéãããã€ãã®äžè¬çãªééããããªãã®åªåãå°ç¡ãã«ããå¯èœæ§ããããŸãïŒ
- äžè²«æ§ã®ãªãããŒãžã§ãã³ã°ïŒ ããŒãžã§ãã³ã°ã¹ããŒã ããã¹ãŠã®CSSãã¡ã€ã«ã«äžè²«ããŠé©çšãããŠããªãå Žåãäžéšã®ã¹ã¿ã€ã«ã¯æŽæ°ãããŠãä»ã®ã¹ã¿ã€ã«ã¯ãã£ãã·ã¥ããããŸãŸã«ãªããèŠèŠçãªäžäžèŽãåŒãèµ·ããå¯èœæ§ããããŸãã
- `no-store`ã`no-cache`ãžã®é床ã®äŸåïŒ ç¹å®ã®ã·ããªãªã§ã¯åœ¹ç«ã¡ãŸããããã¹ãŠã®CSSã`no-store`ïŒãã£ãã·ã³ã°ãå®å šã«é²ãïŒã`no-cache`ïŒãã¹ãŠã®ãªã¯ãšã¹ãã§åæ€èšŒã匷å¶ããïŒã«èšå®ãããšããã£ãã·ã³ã°ã®å©ç¹ãç¡å¹ã«ããããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžãããå¯èœæ§ããããŸãã
- ãããã·ãã£ãã·ã¥ã®ç¡èŠïŒ ãã£ãã·ã³ã°ã¯ãŠãŒã¶ãŒã®ãã©ãŠã¶ã«éå®ãããªãããšãå¿ããªãã§ãã ãããäžéãããã·ãµãŒããŒãCDNããªãœãŒã¹ããã£ãã·ã¥ããŸããç¡å¹åæŠç¥ã¯ãããã®å±€å šäœã§å¹æçã§ãªããã°ãªããŸããããã¡ã€ã«åããŒãžã§ãã³ã°ã¯ãããã§ã¯äžè¬çã«æãå埩åããããŸãã
- å®éã®ãŠãŒã¶ãŒã§ã®ãã¹ãäžè¶³ïŒ 管çãããç°å¢ã§æ©èœããããšããäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠç°ãªãæ¯ãèããããããšããããŸããçŸå®äžçã§ã®ãã¹ãã¯éåžžã«è²Žéã§ãã
- è€éãªåœåèŠåïŒ ããã·ã¥ã¯ãã£ãã·ã¥ãã¹ãã£ã³ã°ã«åªããŠããŸããããã«ãããã»ã¹ãHTMLãä»ã®CSSãã¡ã€ã«ïŒäŸïŒCSS-in-JSãœãªã¥ãŒã·ã§ã³ïŒå ã®ãã¹ãŠã®åç §ãæ£ããæŽæ°ããããšã確èªããŠãã ããã
éçºè ãšã¯ã¹ããªãšã³ã¹ã®åœ¹å²
é©åã«å®è£ ããããã£ãã·ã¥ç¡å¹åæŠç¥ã¯ãããžãã£ããªéçºè ãšã¯ã¹ããªãšã³ã¹ã«å€§ããè²¢ç®ããŸããéçºè ãCSSãæŽæ°ãããã®å€æŽããŠãŒã¶ãŒã«å³åº§ã«ïŒãŸãã¯å°ãªããšãäºæž¬å¯èœãªãã£ãã·ã¥æŽæ°åŸã«ïŒåæ ããããšç¢ºä¿¡ã§ãããšããéçºãšå±éã®ã¯ãŒã¯ãããŒãå¹çåãããŸããããŒãžã§ã³ç®¡çããããã¡ã€ã«åã®æäŸãHTMLåç §ã®èªåæŽæ°ãªã©ããã£ãã·ã¥ãã¹ãã£ã³ã°ãèªååãããã«ãããŒã«ã¯ããã®ç¹ã§éåžžã«äŸ¡å€ããããŸãã
ãã®èªååã«ãããéçºè ã¯ãã£ãã·ã¥é¢é£ã®åé¡ã®ãããã°ã«è²»ããæéãæžããæ©èœã®æ§ç¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®æ¹åã«ããå€ãã®æéãéäžãããããšãã§ããŸããã°ããŒãã«ã«åæ£ããéçºããŒã ã«ãšã£ãŠããã®äžè²«æ§ãšä¿¡é Œæ§ã¯ããã«éèŠã§ãã
çµè«
广çãªCSSãã£ãã·ã¥ç¡å¹åã¯ãåãªãæè¡çãªè©³çްã§ã¯ãããŸãããããã¯ãããã©ãŒãã³ã¹ãé«ããä¿¡é Œæ§ãããããããã§ãã·ã§ãã«ãªWebäœéšãäžçäžã®ãŠãŒã¶ãŒã«æäŸããããã®åºç€ã§ãããã©ãŠã¶ã®ãã£ãã·ã³ã°ã®ä»çµã¿ãçè§£ãããã¡ã€ã«åããŒãžã§ãã³ã°ãæ éã«èšå®ãããHTTPããããŒãªã©ã®å ç¢ãªæŠç¥ãå®è£ ããããšã§ããã¶ã€ã³ã®æŽæ°ãè¿ éãã€äžè²«ããŠé ä¿¡ãããããšãä¿èšŒããŸãã
ãããã¯ãŒã¯ç¶æ³ãå°ççååžã倿§ãªãŠãŒã¶ãŒãšãŒãžã§ã³ããé¢äžããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠãããèãããããã£ãã·ã¥ç¡å¹åæŠç¥ã¯äžå¯æ¬ ã§ããé©åãªãã¯ããã¯ãéžæããå®è£ ããããã«æéãæè³ããããšã¯ããŠãŒã¶ãŒæºè¶³åºŠã®åäžã垯åå¹ æ¶è²»ã®åæžããããŠããå ç¢ã§ä¿å®å¯èœãªWebã¢ããªã±ãŒã·ã§ã³ãšãã圢ã§å ±ãããã§ããããå¯èœãªéãèªååãã培åºçã«ãã¹ãããWebæè¡ãšãŠãŒã¶ãŒã®æåŸ ã®é²åããç¶æ³ã«åãããŠæŠç¥ãé©å¿ãããããšãå¿ããªãã§ãã ããã