éçãµã¤ããå ¬éãããªãã©ããããã®ï¼ #æè¡æ¸å ¸
éçãµã¤ãï¼PHPãRubyãªã©ã®ãµã¼ãã¼ããã°ã©ã ãèµ°ãããªãç°å¢ã§ã®Webãµã¤ãï¼ã§SPAãå ¬éããã«ããã£ã¦ãéç¨ã»é ä¿¡ï¼ãã¹ãã£ã³ã°ï¼ãããªãã©ãããããã¨æè¿èããã¾ãã¦ããã®éã®åçãæè¡æ¸å ¸ã®å®£ä¼ãå ¼ãã¦ããã°ã«ããããã¾ãã
ä»åã¯æ¬¡ã®ï¼ã¤ã§æ¯è¼ãã¦ãã¾ãã
- GitHub Pages
- Firebase Hosting
- GitLab Pages
- Netlify
ä¸è¨ï¼ã¤ã¯ã©ããç¬èªãã¡ã¤ã³ã®è¨å®ã¨SSL対å¿ãç¡æã§è¡ããã¨ãåºæ¥ã¾ãã
â»æ¯è¼çåå¿è ã«åãã¦æ¸ãã¦ããåæã§ãã
AWS S3ãGCPçã®å©ç¨ã¯åå¿è ããããªãè¨å®ãè¡ãã«ã¯é ç®ãå¤ãããé¤å¤ãã¦ãã¾ãã
ã¬ã³ã¿ã«ãµã¼ãã¼ãåºæ¬æéãçºçããã¹ã±ã¼ã«ã»ç®¡çãè¾ãããä»åã¯é¤å¤ãã¦ãã¾ãã
ã¾ããå°ãæ©è½ã«ã¤ãã¦èª¬æãå¿ è¦ãªé¨åãããã®ã§ãå ã«èª¬æãæ¸ãã¾ãã
Rewriteè¨å®ã«ã¤ãã¦
éçãµã¤ãåããSPAãå ¬éããéã«ãããã¡ãªãã¹ãªã®ã§ãããURLãå¤æ´ãã¦ãµããã£ã¬ã¯ãã«é²ãã§ãããªãã¼ãããã¨404ãã¼ã¸ã«ãªã£ã¦ãã¾ãã¨ãããã®ã§ãã
ããã¯å ¬éãµã¤ãã§ãã¼ã¸ã®404ã®Rewriteè¨å®ãåºæ¥ã¦ããªãå ´åã«èµ·ãã£ã¦ãã¾ãäºè±¡ã§ãã
ããã¡ã¤ã«ã®èªã¿è¾¼ã¿æã«404ã ã£ãã index.html ãè¿ãè¨å®ãããããã¨ã§ããªãã¼ããã¦ãç¶ç¶ãã¦ãµã¤ãé²è¦§ãããã¨ãå¯è½ã«ãªãã¾ãã(ãã®å ´åã¯JavaScriptã§404ãã¼ã¸ãã©ãããå¤å®ãã¾ãã)
è¨å®ãåºæ¥ãªãç°å¢ã§SPAã®ã«ã¼ãã£ã³ã°ãå©ç¨ããå ´åã¯ããã·ã¥ã«ã¼ã¿ã¼ã«ããå¿ è¦ãããã¾ãã
ãã«ãæ©è½ã«ã¤ãã¦
ããã¸ã§ã¯ãã«ãã£ã¦ã¯Webpackãªã©ãå©ç¨ãã¦ãhtml,css,jsãã¡ã¤ã«ãã³ã³ãã¤ã«ï¼ãã©ã³ã¹ãã¤ã«ï¼ãã¦ããå ¬éããã¨æãã¾ãã
ãã®ã¨ãã«ãã«ãæ©è½ãã¤ãã¦ããç°å¢ã®å ´åã¯ããæå ã§ãã«ããããã®ãgitã§ç®¡çããããCircle CIãªã©ã§ãã«ããã¦deployãããçã®æéãçãã¾ãã
ãã¹ããæ¸ãã¦ããããã¹ããéããã©ãããªã©ãããã§ãã§ãã¯ãã¦ããããã¤ãããã©ãããé¸æã§ãããããã¾ãã
åãµã¼ãã¹ã®æ©è½ãç´¹ä»
GitHub Pages
- ã¨ã«ããã¿ãã§ä½¿ãã¾ãï¼
- 使ãã¾ãããä¸è¨ã®è¨äºã®ãããªå¶éãããã¾ã
GitHub Pagesでホストするサイトのアクセス上限は月10万リクエストが目安
- è¨å®ããç¹å®ã®ãã©ã³ããèªåã§å ¬éãããã®ã§ç®¡çã楽ã
- Ã: SPAç¨ã®Rewriteè¨å®ä¸å¯
- Ã: ãã«ãæ©è½ç¡ã
Firebase Hosting
- â³: ããããã¢ã¯ã»ã¹ãããã¨ãã¼ã¿å®¹éã«å¿ãã¦èª²éãå¿ è¦ã«ãªãã¾ã
(ç¡ææ ã§å©ç¨ãã¦ãã¦å¶éã¾ã§è¡ã£ãããéç¥ãæ¥ãã®ã¿ã§åæã«èª²éããããããªãã¨ã¯ããã¾ããã)
- SPAç¨ã®Rewriteè¨å®å¯è½
- ç¹å®ã®ãã¹ãFirebase Functionsã«ç¹ããã¨ãã§ãã
- Ã: ãã«ãæ©è½ç¡ã
GitLab Pages
- ã¨ã«ããã¿ãã§ä½¿ãã
- SPAç¨ã®Rewriteè¨å®å¯è½
- ç¹å®ã®ãã©ã³ããèªåå ¬éã§ãã¦ç®¡çã楽
- ãã«ãæ©è½ã¢ãª
Netlify
- ã¨ã«ããã¿ãã§ä½¿ãã
- SPAç¨ã®Rewriteè¨å®å¯è½
- GitHubãGitLabã¨é£æºãã¦ãéçãµã¤ããèªåã§å ¬éå¯è½
- ãã«ãæ©è½ã¢ãª
- ç¹å®ã®ãã¹ã«AWS lambda(Netlify Functions)æ¥ç¶å¯è½
ã¾ã¨ã
ãã§ã«GitHubãGitLabã§ã½ã¼ã¹ã管çãã¦ããã¨ãã¦ãã©ã¤ãã©ãªã®ãªãã¡ã¬ã³ã¹ãªã©ã®ã¡ãã£ã¨ãããµã¤ããªãããããã®Pagesæ©è½ã使ãã¨æ軽ã§ãã
Firebaseãå©ç¨ãã¦ãã¦ãFunctionsã¨ãã¹ãã¤ãªããããªãFirebase Hostingãå©ç¨ãã¾ããããããããã«ãæ©è½ããªãã®ã§å¿ è¦ãªå ´åã¯Circle CIãªã©ã¨ä½µç¨ãå¿ è¦ã§ãã
ä»ãFirebase Functionsã¨ã¤ãªãããå ´åãé¤ãã¦ä¾¿å©ãªæ©è½ãæã£ã¦ããNetlifyããããããã¦ãã¾ããNetlifyã«ã¯ä»ã«ãããããã®ä¾¿å©ãªæ©è½ãåãã£ã¦ãã¾ãã
Netlifyã®ä¸è¨ä»¥å¤ä¾¿å©æ©è½ç´¹ä»
- ãã©ã³ãæ¯ã«èªåã§ãµã¤ããå ¬éã§ããï¼ãã«ãªã¯ã確èªããã¨ããªã©ä¾¿å©ï¼
- Webhookã§ãã«ããããããã«ããã¦ãããã¤ãããSlackã«éç¥ããï¼GitLabãå¯è½ï¼
- ãã©ã³ããã¨ã®A/Bãã¹ãç¨ã«åºãåããã§ãã
- ãµã¼ãã¼ãµã¤ãã¬ã³ããªã³ã°ããªãSPAã§ããã³ã³ãã³ãã«å¿ãã¦OGPç»åãªã©ã®metaæ å ±ãåºãåãããã(Prerenderingæ©è½)
- éçãµã¤ãã§ãããããªããã©ã¼ã ã ãè¨ç½®ããããå ´åãNetlify Formãå©ç¨ã§ãã
- ããã°ãªã©ãä½ãããå ´åã«ã³ã³ãã³ãã管çã§ããNetlify CMSãããã¾ã
ä»ã«ããã¼ã éçºã§å¿ è¦ãªæ©è½ããBASICèªè¨¼ã®è¨å®(ææ)ãªã©æ§ã ãªéçãµã¤ãå ¬éã«ä¾¿å©ãªæ©è½ãåãã£ã¦ãã¾ãï¼
ã¨ãããã¨ã§å®£ä¼
ãããªNetlifyã®æ§ã ãªæ©è½ãï¼ããï¼ï¼ã¾ã§ã»ã¼å ¨ã¦å®ä¾ã使ã£ã¦è§£èª¬ããæ¬ãä»åº¦ã®10æ8æ¥ã«éå¬ãããæè¡æ¸å ¸ã§è²©å£²ãã¾ãã®ã§ãããã£ãããæ¹ã¯ãã°ã¤ã³ãã¦ä¸è¨ã®ãã¼ã¸ããã§ãã¯ãã¦ãã²ãã²è²·ãã«æ¥ã¦ãã ããï¼ï¼ï¼
以ä¸ã§ãããæ¬è²·ããªãã¨ãNetlifyã¯ãã£ã¡ã便å©ãªã®ã§ä¸åº¦ä½¿ã£ã¦ã¿ã¦ä¸ããï¼