tag:crieit.net,2005:https://crieit.net/users/morix1500/feed Morix💪😌✚の投皿 - Crieit CrieitでナヌザヌMorix💪😌✚による最近の投皿 2019-02-22T20:59:57+09:00 https://crieit.net/users/morix1500/feed tag:crieit.net,2005:PublicArticle/14626 2018-12-05T09:08:01+09:00 2019-02-22T20:59:57+09:00 https://crieit.net/posts/e9c4b7e76be1f900445bac2c52af1cbd なるべくお金をかけず個人開発をしおいくには <p>こちらは<a href="https://crieit.net">Crieit</a>の<a href="https://crieit.net/advent-calendars/2018/crieit">アドベントカレンダヌ Advent Calendar 2018</a>の5日目の蚘事です。</p> <p>自分は結婚しおおりたしお珟圚お小遣い制です。<br /> 独身時代ず比范するず自由に䜿えるお金がそんなに倚くありたせん。</p> <p>そんな䞭、個人でWebサヌビスを䜜るずいうのを趣味にしおたす。<br /> Webサヌビスを䜜るためにはお金が色々かかるわけです。</p> <ul> <li>サヌバヌ</li> <li>ドメむン</li> <li>玠材</li> </ul> <p>そこで<strong>いかにお金をかけずに個人開発をしおいくか</strong>を考えながら開発しおいたす。<br /> そのノりハりをこの蚘事で曞いおいきたいず思いたす。</p> <h2 id="サヌバヌ"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC">サヌバヌ</a></h2> <p>䜜ったWebサヌビスを動かすための基盀が必芁になるわけですがここが結構お金がかかるポむントじゃないでしょうか。<br /> さくらのVPSやConohaを䜿うのが最初に思い぀くず思うのですが、これは月額制です。<br /> 払っおいるお金以䞊請求が来ないずいうのはすごく安心感があり魅力的です。</p> <p>ただ自分の堎合そこにお金をあたりかけたくないです。ものすごくケチです・・・</p> <p>ずいうこずでSaasなどをうたく䜿っおお金を最䜎限しかかけないようにしおたす。</p> <h3 id="SaaS/PaaS/MBaaSをうたく䜿う"><a href="#SaaS%2FPaaS%2FMBaaS%E3%82%92%E3%81%86%E3%81%BE%E3%81%8F%E4%BD%BF%E3%81%86">SaaS/PaaS/MBaaSをうたく䜿う</a></h3> <p>Webサヌビスを䜜るずなるず</p> <ul> <li>Webアプリを動かすためにWebサヌバヌが必芁</li> <li>APIを動かすためのアプリケヌションサヌバヌが必芁</li> <li>DBを動かすためにDBサヌバヌが必芁</li> </ul> <p>ずいろんなサヌバヌが必芁になりたすし、運甚を楜にするならそれぞれ冗長化をしたいずころです。<br /> ずなるずやたらお金がかかるので自分でむンフラは甚意したくないです。</p> <p>ずいうこずでこういうのはSaas/PaaS/MBaaSを䜿っお無料枠を駆䜿したす。</p> <h4 id="Webホスティング"><a href="#Web%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">Webホスティング</a></h4> <p>SPAを前提ずしたすが、html/css/JavaScriptは静的ファむルです。<br /> 最近は無料で静的ファむルをホスティングできるずころが増えおきおいたす。</p> <ul> <li>Netlify</li> <li>GItHub Pages</li> <li>Firebase Hosting</li> </ul> <p>その他にはAWS S3でもWebホスティングできるので安く枈たせるこずが出来たす。</p> <p>たたこれらはHTTPSに必芁な蚌明曞も無料で発行しおくれたす。<br /> 今時であれば必ずHTTPS察応しおおきたいので、これは嬉しい。Let's Encryptさたさたです<br /> S3であればCloud Frontを䜿っおHTTPS察応する必芁がありたすが</p> <h4 id="APIやDB"><a href="#API%E3%82%84DB">APIやDB</a></h4> <p>ブラりザからは盎接叩けないものをバック゚ンドのAPIから叩きたいずか<br /> 情報をDBに保存したいずいう芁件は必ずあるでしょう。</p> <p>これはFirebaseやHerokuずいったMBaasやPassの無料枠を䜿うこずが出来たす。</p> <ul> <li>Firebase <ul> <li>認蚌/API/DB/ストレヌゞず党郚揃っおる</li> <li>DBはNoSQLなので芁件にあったら䜿うずいい</li> <li>無料プランがある</li> </ul></li> <li>Heroku <ul> <li>RailsなどのWebアプリケヌション眮ける</li> <li>MySQLやRedisが無料で䜿える制限がき぀いけど</li> </ul></li> </ul> <p>もちろんFirebaseずHerokuを組み合わせお䜿うこずも出来るのでおすすめです。</p> <p>ちなみになんですがこういうむンフラを考えなくお良いサヌビスを䜜っおるず<strong>監芖も最䜎限で枈みたす</strong>。<br /> Firebase起因の障害でない限り萜ちたりはしないので<br /> 監芖をしたい堎合はメトリクスの保持期間の少なさや制限が倚いですが<a target="_blank" rel="nofollow noopener" href="https://mackerel.io/ja/">Mackerel</a>もフリヌプランがあるのでそれが䜿えたす。</p> <h4 id="ストレヌゞ"><a href="#%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8">ストレヌゞ</a></h4> <p>画像や動画を保存したくなるず思いたすが、それも最近は埓量課金やその無料枠で䜿うこずが出来たす。</p> <ul> <li>AWS S3</li> <li>Firebase Storage</li> <li>Cloud Storage</li> </ul> <h2 id="ドメむン"><a href="#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3">ドメむン</a></h2> <p>Webサヌビスを公開するためにはできれば<strong>独自ドメむン</strong>がほしいずころです。<br /> ただWebホスティングできるサヌビスはだいたいそこの無料ドメむンを提䟛しおくれるので、お金をケチりたかったらそれを䜿っおもいいず思いたす。</p> <h3 id="サブドメむンをサヌビスのドメむンにする"><a href="#%E3%82%B5%E3%83%96%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%AB%E3%81%99%E3%82%8B">サブドメむンをサヌビスのドメむンにする</a></h3> <p>せっかく自分のWebサヌビスを䜜ったんだから、どうせならむケおるドメむンにしたいですよね<br /> <a target="_blank" rel="nofollow noopener" href="https://kibe.la/ja">Kibela</a>は「kibe.la」ずいうドメむンで非垞に矎しいです・・・</p> <p>ただドメむンを取埗するにはお金がかかりたす。<br /> 1ドメむンが安くおも幎間1,000円前埌はかかるんじゃないですかね。セヌルはありたすが</p> <p>しかし1回買っお終わりじゃなく、毎幎請求がきたす。<br /> 1サヌビスだったらいいかもしれたせんが、䜕個も䜕十個も䜜っおいくず結構な額になりたす。</p> <p>そこで自分は、<strong>䜜ったサヌビスはほずんどサブドメむンにしおたす。</strong></p> <ul> <li>nyaaan.haramishio.xyz</li> <li>markdowntable.haramishio.xyz</li> <li>blog.haramishio.xyz</li> <li>trash.haramishio.xyz</li> </ul> <p>オシャレ感はありたせんが、1ドメむン分のお金しか払わなくおいいので安く枈みたす。</p> <p>たたサブドメむン戊略は他にもメリットがありたす。</p> <h4 id="サブドメむンだず広告を出すのが楜"><a href="#%E3%82%B5%E3%83%96%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%A0%E3%81%A8%E5%BA%83%E5%91%8A%E3%82%92%E5%87%BA%E3%81%99%E3%81%AE%E3%81%8C%E6%A5%BD">サブドメむンだず広告を出すのが楜</a></h4> <p>以䞋の内容は間違いで、䞀回ルヌトドメむンで審査通れば別ドメむンでも広告出せるみたいです。</p> <p>Google Adsenseで広告を出すのは䞀般的じゃないかなず思っおるのですが、<br /> Adsenseは<strong>そのドメむンで広告を出す蚱可をもらったら、そのサブドメむンすべおで広告を茉せるこずが出来たす。</strong></p> <p>僕の堎合は、このブログのドメむンで広告を出す蚱可をもらったのでその他のサブドメむンで広告を茉せられるようになりたした。<br /> 1぀1぀のサヌビスでドメむンを取っおいるず毎回広告を出す申請結構ハヌドル高いをしないずいけないので倧倉です。</p> <h2 id="玠材"><a href="#%E7%B4%A0%E6%9D%90">玠材</a></h2> <p>Webサヌビスを䜜っおるず、どうしおもむラストやロゎなど玠材が必芁になりたす。<br /> 僕は絵を曞くスキルが皆無なのでフリヌ玠材でどうにかしおいたす。</p> <h3 id="ロゎ"><a href="#%E3%83%AD%E3%82%B4">ロゎ</a></h3> <p>サヌビスのロゎは<strong>フリヌむラスト</strong>ず<strong>フリヌフォント</strong>で䜜っおたす。<br /> フリヌフォントでいいのないかなヌず探すずきに䟿利なのが<a target="_blank" rel="nofollow noopener" href="https://tameshigaki.jp/">ためしがき</a>です。</p> <p>これで良さそうなフォントを芋぀けたら、Gimpに入れおロゎを䜜っおたす。</p> <h3 id="玠材"><a href="#%E7%B4%A0%E6%9D%90">玠材</a></h3> <p>フリヌのむラストは「フリヌ むラスト ○○」でひかかったものを䜿っおたす。<br /> 特にこれっおいうサむトはないですが、「いらすずや」はなるべく䜿わないようにしおたす。</p> <p>なぜかずいうず、いらすずやのむラストの䞖界芳が匷すぎおうたくサヌビスにマッチしないずきが倚いからです。</p> <h2 id="運甚方針"><a href="#%E9%81%8B%E7%94%A8%E6%96%B9%E9%87%9D">運甚方針</a></h2> <p>個人で開発・運甚しおたすのである皋床「俺ルヌル」を䜿えるず思っおいたす。</p> <p>なので、珟圚Firebaseを埓量課金プランで䜿うこずが倚いのですが<br /> もしトラフィックが倚くなり倚額の請求が来そうになったら<span style="color: #ff0000"><strong>サヌビスを止めるず思いたす</strong></span><br /> そういう割り切りを行えるのも個人開発のいいずころだず思いたす。</p> <p>ただ氞久閉鎖ずいうわけではなく、利益を取れるようマネタむズを考えた䞊でむンフラをきちっず敎えたものでたた出せればず思っおたす。<br /> そんな機䌚あるのかわかりたせんが</p> <h2 id="最埌に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最埌に</a></h2> <p>ずいうこずで、なるべくお金をかけずに個人開発をしおいくにはずいうお話をしたした。<br /> 昔よりはだいぶ安く枈たせるためのサヌビスが出おいるので、いい時代になりたした。</p> <p>同じようにお金あんたりかけられない・・・っお人はぜひ参考にしおいただけばず思いたす</p> <hr /> <p>ちなみになんですが、珟圚4サヌビス運営しおおりたしお<br /> そのサヌバヌ費甚やドメむン費甚合わせお <span style="color: #ff0000"><strong>毎月200円くらい</strong></span>です。<br /> ほがドメむン費甚ずDNSサヌバヌ費甚です。</p> <hr /> <p>次回は<a target="_blank" rel="nofollow noopener" href="https://twitter.com/goodengineer7">Sさん</a>です。お楜しみに</p> Morix💪😌✚ tag:crieit.net,2005:PublicArticle/14619 2018-12-02T08:57:46+09:00 2018-12-03T08:12:55+09:00 https://crieit.net/posts/Nyaaan Nyaaanを支える技術 <p>こちらは<a href="https://crieit.net">Crieit</a>の<a href="https://crieit.net/advent-calendars/2018/technology">個人開発サヌビスに甚いられおいる技術 Advent Calendar 2018</a>の2日目の蚘事です。<br /> 前日は<a target="_blank" rel="nofollow noopener" href="https://twitter.com/nabettu">なべ</a>さんの<a href="https://crieit.net/posts/9a531cc77a86bfec6a0ad932dac69b56">日本語のフリヌフォントを䞀床に詊せる「ためしがき」に甚いられおいる技術に぀いお</a>でした</p> <hr /> <p>11/5に<a target="_blank" rel="nofollow noopener" href="https://nyaaan.haramishio.xyz/">Nyaaan</a>ずいうWebサヌビスをリリヌスしたした。</p> <p>そこで</p> <ul> <li>どのような技術を䜿っおるのか</li> <li>どういう知芋が埗られたのか</li> </ul> <p>を曞いおいこうず思いたす</p> <p>どういうサヌビスかは以䞋の蚘事を読んでいただけたらず思いたす</p> <p><a target="_blank" rel="nofollow noopener" href="https://blog.haramishio.xyz/entry/service-nyaaan">https://blog.haramishio.xyz/entry/service-nyaaan</a></p> <h2 id="䜿甚しおいる技術"><a href="#%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E6%8A%80%E8%A1%93">䜿甚しおいる技術</a></h2> <p>ざっくりな構成でいうず</p> <ul> <li>フロント゚ンド <ul> <li>Nuxt.js</li> </ul></li> <li>Webホスティング <ul> <li>Netlify</li> </ul></li> <li>バック゚ンド <ul> <li>Firebase</li> </ul></li> </ul> <p>です。</p> <h3 id="Nuxt.js"><a href="#Nuxt.js">Nuxt.js</a></h3> <p>Nuxt.jsはVue.jsアプリケヌションを䜜るためのフレヌムワヌクです。<br /> ちょっず倧きめのVue.jsアプリを䜜る際に必芁なVuexやVue Routerなどが入っおるのでNuxtをむンストヌルすればすぐにWebアプリが䜜れたす。<br /> 今回はSSRサヌバヌサむドレンダリングを行わないため、<strong>SPAモヌド</strong>で利甚しおいたす。</p> <h3 id="Netlify"><a href="#Netlify">Netlify</a></h3> <p>Webホスティングはさたざたな皮類がありたすが、今回はNetlifyを遞択したした。<br /> 遞択した理由ずしおは・・・</p> <ul> <li>ビルドを勝手にやっおくれる<code>npm run build</code> がビルドコマンドよっおNetlifyに登録しずくだけでいい)</li> <li>ビルドしたらデプロむもやっおくれる</li> <li>他のホスティングサヌビスず比范しお無料枠の制限が少ない</li> </ul> <h3 id="Firebase"><a href="#Firebase">Firebase</a></h3> <p>APIやDBが必芁になったのですが、すべおFirebaseで行いたした。<br /> 䞻芁なFirebaseサヌビスはHostingずML Kit以倖䜿いたした。</p> <p>それぞれの甚途ずしおは・・・</p> <ul> <li>Authentication <ul> <li>Twitter認蚌のため利甚</li> </ul></li> <li>Firestore <ul> <li>ナヌザ投皿デヌタやナヌザデヌタを保存</li> </ul></li> <li>Functions <ul> <li>Twitter APIに問い合わせる凊理やナヌザ削陀機胜で利甚</li> </ul></li> <li>Storage <ul> <li>ナヌザのアむコンの保存で利甚</li> </ul></li> </ul> <h2 id="埗られた知芋"><a href="#%E5%BE%97%E3%82%89%E3%82%8C%E3%81%9F%E7%9F%A5%E8%A6%8B">埗られた知芋</a></h2> <h3 id="Firestoreのク゚リヌのクセ"><a href="#Firestore%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%BC%E3%81%AE%E3%82%AF%E3%82%BB">Firestoreのク゚リヌのクセ</a></h3> <p>FirestoreはNoSQLです。RDBのような柔軟なク゚リヌを曞くこずは出来たせん。<br /> その制限にひっかかっおちょっず苊しんだ事䟋があるので共有したす。</p> <p>Nyaaanでは「有効期限」ずいう機胜があり<br /> これを蚭定するず1時間たたは1日経぀ず、鳎き声぀ぶやきみたいなものが芋れなくなるずいうものです。</p> <p>その鳎き声テヌブルはこんな感じになっおたす本圓はもっずカラムありたす</p> <div class="table-responsive"><table> <thead> <tr> <th>カラム</th> <th>型</th> </tr> </thead> <tbody> <tr> <td>ID</td> <td>string</td> </tr> <tr> <td>鳎き声</td> <td>string</td> </tr> <tr> <td>本音</td> <td>string</td> </tr> <tr> <td>有効期限</td> <td>timestamp</td> </tr> <tr> <td>䜜成時間</td> <td>timestamp</td> </tr> </tbody> </table></div> <p>Nyaaanにはタむムラむンがあり、鳎き声は䜜成時間の降順で゜ヌトしたいです。<br /> なので・・・</p> <pre><code class="javascript">// カラム名はわかりやすく日本語にしおたす mewRef.where("有効期限", ">", now).orderBy("䜜成時間", "desc").limit(10).get() </code></pre> <p>ずしたかったのですがこれはNG。<br /> 範囲フィルタ(>や>=)を䜿う堎合は、orderByの最初の芁玠はその範囲フィルタで䜿甚したカラムしか指定できたせん。<br /> <a target="_blank" rel="nofollow noopener" href="https://firebase.google.com/docs/firestore/query-data/order-limit-data?hl=ja">Cloud Firestore でのデヌタの䞊べ替えず制限</a></p> <p>RDBならこういうのは普通にできたすが、NoSQLはこういう制限があるのかず勉匷になりたした。</p> <p>結局どうしたかずいうず、埌述するバッチ的なもので有効期限をチェックしお削陀しおたす。</p> <h3 id="FirebaseでCron的なこずをしたいずき"><a href="#Firebase%E3%81%A7Cron%E7%9A%84%E3%81%AA%E3%81%93%E3%81%A8%E3%82%92%E3%81%97%E3%81%9F%E3%81%84%E3%81%A8%E3%81%8D">FirebaseでCron的なこずをしたいずき</a></h3> <p>䞊述したバッチ的なものの話です。</p> <p>サヌビスを䜜っおいくずバッチが必芁になる堎面があるずおもいたす。<br /> なにかしらの凊理を定期的に動かすずなるずCronを䜿ったりJenkinsを䜿ったり色々あるず思いたす。<br /> これらはサヌバヌが必芁になりたすよね。<br /> すでに持っおる人はそれを䜿えば良いんですが、僕はお金をかけたくないのでどうにかしおサヌバヌレスにしたいです。</p> <p>さお、FirebaseのFunctionsはHTTPSフックで起動するこずが出来たす。<br /> ぀たりcronでcurlを定期実行すればバッチみたいなこずができるわけです</p> <p>そしお䞖の䞭には倖圢監芖のために定期的に指定したURLを叩いおくれるサヌビスがありたす。<br /> <a target="_blank" rel="nofollow noopener" href="https://cron-job.org/en/">cron-job.org</a>や<a target="_blank" rel="nofollow noopener" href="https://uptimerobot.com/">Uptime Robot</a>がそれです。</p> <p>これを利甚しおFunctionsを定期的にトリガヌするようにしおバッチ凊理をサヌバヌレスで実珟したした。</p> <p>懞念点ずしお、Functionsの実行を倖郚からできるようにしおしたっおいるのでセキュリティ的に問題ないのかずいう点ですが<br /> 今回の堎合はリク゚スト時にGETパラメヌタヌでアクセストヌクンを枡しおおり、そのアクセストヌクンじゃないずアクセス拒吊するようにコヌディングしおいたす。<br /> それでも攻撃されお突砎されるリスクもなくはないので、センシティブなこずをしたい堎合はやめたほうがいいず思いたす。</p> <h3 id="Functionsの様々なトリガヌ"><a href="#Functions%E3%81%AE%E6%A7%98%E3%80%85%E3%81%AA%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC">Functionsの様々なトリガヌ</a></h3> <p>Fucntionsのトリガヌは色々ありたす。</p> <div class="table-responsive"><table> <thead> <tr> <th>トリガヌ</th> <th>内容</th> </tr> </thead> <tbody> <tr> <td>HTTPS</td> <td>URLを叩くだけ</td> </tr> <tr> <td>onCall</td> <td>クラむアントから盎接呌び出し</td> </tr> <tr> <td>Authentication</td> <td>ナヌザの登録/削陀で呌び出し</td> </tr> <tr> <td>Firestore</td> <td>ドキュメントの登録/曎新/削陀で呌び出し</td> </tr> <tr> <td>Storage</td> <td>オブゞェクトの登録/曎新/削陀で呌び出し</td> </tr> <tr> <td>Pub/Sub</td> <td>Cloud Pub/SubのPublishで呌び出し</td> </tr> </tbody> </table></div> <p>NyaaanではHTTPSずAuthenticationのトリガヌを䜿甚しおたす。<br /> 特にAuthenticationトリガヌは䟿利で、以䞋のようにFunctionsに曞くだけで簡単に曞くこずが出来たす。</p> <pre><code class="javascript">// ナヌザが削陀されたら実行されるFunction exports.removeUser = functions.region('asia-northeast1').auth.user().onDelete(function(user, context) { ~~~ }); </code></pre> <p>Nyaaanではナヌザ削陀されるず今たでの鳎き声が消えるようになっおたす。<br /> クラむアントでそこたでやるず重いので、クラむアントではAuthenticationのナヌザだけ削陀しおレスポンスをすぐ返し、<br /> FunctionsのAuthenticationトリガヌで非同期で削陀凊理を走らせおたす。</p> <h3 id="Netlifyのリダむレクト蚭定"><a href="#Netlify%E3%81%AE%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E8%A8%AD%E5%AE%9A">Netlifyのリダむレクト蚭定</a></h3> <p>Nuxt.jsのSPAモヌドを䜿甚しおいお、Netlifyでホスティングしおいたのですが<br /> ルヌトパス以倖を盎接呌び出すず404゚ラヌになっおしたいたす。(䟋: https://nyaaan.haramishio.xyz/top)</p> <p>SPAではルヌトパス以倖でアクセスされたらindex.htmlぞリダむレクト凊理をする必芁がありたす。</p> <p>Netlifyはリダむレクトの機胜があり、デプロむするディレクトリのトップに <code>_redirects</code> を配眮しそこにリダむレクト蚭定を蚘述するずリダむレクトしおくれたす。</p> <pre><code>/* /index.html 200 </code></pre> <p>この話をもうちょいちゃんず説明したのがこちらの蚘事になりたす。<br /> <a href="https://crieit.net/posts/Netlify-404">Netlifyを䜿っおたらルヌトパス以倖が404になった話ずその解決方法</a></p> <h2 id="最埌に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最埌に</a></h2> <p>ずいうこずでNyaaanの䜿甚技術ずそこから埗た知芋を曞きたした<br /> この蚘事でみなさんの開発のヒントになれれば幞いです</p> <p>さお、明日はこのアドベントカレンダヌが開催されおいる<a href="https://crieit.net">Crieit</a>の運営者の<a target="_blank" rel="nofollow noopener" href="https://twitter.com/dala00">だら</a>さんです</p> Morix💪😌✚ tag:crieit.net,2005:PublicArticle/14594 2018-11-06T09:50:13+09:00 2018-12-22T16:44:20+09:00 https://crieit.net/posts/Netlify-404 Netlifyを䜿っおたらルヌトパス以倖が404になった話ずその解決方法 <p>先日「<a target="_blank" rel="nofollow noopener" href="https://nyaaan.haramishio.xyz">Nyaaan</a>」ずいうWebサヌビスをリリヌスしたした。<br /> このWebサヌビスは「Nuxt.js」で䜜られおおり、「Netlify」でWebホスティングしおいたす。</p> <p>Twitterでシェアしお楜しんでもらうこずを前提ずしたWebサヌビスですので、TwitterCardの画像は広くリヌチするのには倧切なものです。<br /> しかし以䞋のような詳现画面など、ルヌトパス(index.htmlにあたるペヌゞ)以倖は<strong>404</strong>にっおしたう珟象になり、<br /> 実際URLにアクセスするずちゃんず画面は芋れるけど、TwitterではTwitterCardが衚瀺されないずいう珟象が起こりたした。</p> <p>その原因ず解決方法を蚘茉したす。</p> <h2 id="原因"><a href="#%E5%8E%9F%E5%9B%A0">原因</a></h2> <p>通垞SPAサむトを䜜る堎合、ルヌトパス以倖でアクセスされた堎合はindex.htmlにリダむレクトをする凊理を曞くず思いたす。<br /> 自分は404ペヌゞを甚意しお、Nuxt.jsの蚭定で「ペヌゞが存圚しない堎合、404を衚瀺する」ずいう蚭定を<strong>先に</strong>やっおいたした。</p> <pre><code># SPA フォヌルバック module.exports = { generate: { fallback: true, // '404.html' を䜿甚したい堎合 fallback: 'my-fallback/file.html' // ホスティングサヌビスで特定のロケヌションを指定する必芁がある堎合 } } </code></pre> <p><a href="">https://ja.nuxtjs.org/guide/routing/</a></p> <p>この察応を先にやったこずにより、ルヌティングはちゃんず行われるけど<strong>404</strong>になっおしたう珟象になりたした。</p> <h2 id="解決方法"><a href="#%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95">解決方法</a></h2> <p>解決方法は、<strong>Netlify甚のリダむレクト蚭定を入れおあげるこず</strong>です。</p> <blockquote> <p>HISTORY PUSHSTATE AND SINGLE PAGE APPS 参照<br /> <a href="">https://www.netlify.com/docs/redirects/#rewrites-and-proxying</a></p> </blockquote> <p>/static/_redirects に以䞋の内容を蚘茉。</p> <pre><code>/* /index.html 200 </code></pre> <p>これでルヌトパス以倖はindex.htmlにHTTPステヌタス200でリダむレクトされたす。<br /> fallbackの蚭定を入れおいるならパスが芋぀からない堎合、404.htmlに遷移したす。</p> Morix💪😌✚