[{"data":1,"prerenderedAt":246},["ShallowReactive",2],{"content-/blog-reload-and-slow-transition-investigation":3,"all-pages-for-dir":224,"related-/blog-reload-and-slow-transition-investigation":225,"og-image-/blog-reload-and-slow-transition-investigation":245},{"id":4,"title":5,"body":6,"category":208,"concepts":208,"description":209,"extension":210,"meta":211,"navigation":212,"ogImage":208,"path":213,"project_name":208,"published":214,"publishedAt":215,"seo":216,"source":208,"stem":217,"tags":218,"todo":208,"unpublished":214,"updatedAt":208,"__hash__":223},"pages/2025-12/2025-12-06/blog-reload-and-slow-transition-investigation.md","Blog再読み込みで一覧が消える＆記事遷移が遅い調査メモ",{"type":7,"value":8,"toc":200},"minimark",[9,13,28,31,145,148,181,184],[10,11,12],"h2",{"id":12},"発生していた現象",[14,15,16,25],"ul",{},[17,18,19,20,24],"li",{},"本番で ",[21,22,23],"code",{},"/blog"," をリロードすると一覧が空になる。",[17,26,27],{},"ブログ一覧から記事詳細への初回遷移は体感 ~1s かかる（2回目以降は速い）。",[10,29,30],{"id":30},"対応で試したことと結果",[32,33,34,70,94,118],"ol",{},[17,35,36,40],{},[37,38,39],"strong",{},"デプロイ方式を SSG に固定",[14,41,42,60],{},[17,43,44,47,48,51,52,55,56,59],{},[21,45,46],{},"package.json"," を ",[21,49,50],{},"pnpm generate && wrangler pages deploy dist"," に変更し、",[21,53,54],{},"postgenerate"," で ",[21,57,58],{},"dist/_routes.json"," を再生成。",[17,61,62,63,65,66,69],{},"結果: ",[21,64,23],{}," リロードで一覧が正しく表示されるようになった。",[21,67,68],{},"__nuxt_content"," への D1 呼び出しは発生しない。",[17,71,72,75],{},[37,73,74],{},"記事ページの余計なクエリ削減",[14,76,77,87],{},[17,78,79,82,83,86],{},[21,80,81],{},"app/pages/[...slug].vue"," で、単一記事表示時は ",[21,84,85],{},"queryCollection(\"pages\").all()"," を実行しないようガード。ディレクトリ一覧時のみ必要フィールドに絞って取得。",[17,88,89,90,93],{},"期待: ",[21,91,92],{},"_payload.json"," の肥大化抑制 → 初回遷移のデータ転送量を削減。",[17,95,96,99],{},[37,97,98],{},"NuxtLink プリフェッチを有効化",[14,100,101,115],{},[17,102,103,106,107,110,111,114],{},[21,104,105],{},"ArticleTable.vue"," と ",[21,108,109],{},"BlogCalendar.vue"," の ",[21,112,113],{},":prefetch=\"false\""," を削除しデフォルト有効に戻した。",[17,116,117],{},"期待: 一覧→記事への初回遷移で必要チャンクを事前取得し体感を短縮。",[17,119,120,123],{},[37,121,122],{},"デプロイ時のパス誤り修正",[14,124,125,138],{},[17,126,127,130,131,134,135,137],{},[21,128,129],{},".output/public"," ではなく ",[21,132,133],{},"dist"," をデプロイ対象に統一し、",[21,136,54],{}," も同じパスで動くよう修正。",[17,139,140,141,144],{},"これにより ",[21,142,143],{},"wrangler pages deploy dist"," がエラーなく通る。",[10,146,147],{"id":147},"参考ログ",[14,149,150,160,171],{},[17,151,152,155,156,159],{},[21,153,154],{},"pnpm deploy:cloudflare"," 実行時、Nuxt generate で 127 ルート prerender 済み（",[21,157,158],{},"dist/_payload.json"," 生成）。",[17,161,162,163,166,167,170],{},"生成物サイズ例: ",[21,164,165],{},"dist/blog/_payload.json"," 約 56 KB、",[21,168,169],{},"search/_payload.json"," 約 5.7 MB（検索ページは大きい）。",[17,172,173,174,177,178,180],{},"本番での簡易計測: ",[21,175,176],{},"https://log.eurekapu.com/2025-12-06/thinkpad-trackpoint-keyboard-scroll-fix"," 初回取得 ~0.4s、",[21,179,92],{}," 約 6 KB。",[10,182,183],{"id":183},"現状の結論",[14,185,186,189],{},[17,187,188],{},"一覧リロード問題は SSG 固定で解消。",[17,190,191,192,195,196,199],{},"初回遷移はプリフェッチ有効化と ",[21,193,194],{},"_payload"," 縮小で改善見込み。さらに短縮したい場合は、クライアント側で不要な sqlite WASM 読み込みを避ける（",[21,197,198],{},"server: true"," オプションでサーバ取得に限定する）など追加チューニング検討。",{"title":201,"searchDepth":202,"depth":202,"links":203},"",2,[204,205,206,207],{"id":12,"depth":202,"text":12},{"id":30,"depth":202,"text":30},{"id":147,"depth":202,"text":147},{"id":183,"depth":202,"text":183},null,"Cloudflare Pages 本番で発生したブログ一覧非表示と初回遷移遅延の原因と対応の記録","md",{},true,"/blog-reload-and-slow-transition-investigation",false,"2025-12-06T00:00:00.000Z",{"title":5,"description":209},"2025-12/2025-12-06/blog-reload-and-slow-transition-investigation",[219,220,221,222],"nuxt","cloudflare-pages","performance","troubleshooting","70h_gf-vd-LmcJgooZNr_I2PpOyPghmMC27eIbT7se4",[],[226,230,234,237,241],{"title":227,"path":228,"publishedAt":229},"Nuxt Content v3 + Cloudflare Pages で直リンク時に404になる問題の解決","/nuxt-content-cloudflare-404-fix","2026-02-11T00:00:00.000Z",{"title":231,"path":232,"publishedAt":233},"Nuxt SSRエラー対策: データ分割とClientOnly","/nuxt-client-only-guide","2025-12-15T00:00:00.000Z",{"title":235,"path":236,"publishedAt":215},"ブログ一覧→記事ページ遷移が遅い問題の調査","/blog-page-transition-slow-investigation",{"title":238,"path":239,"publishedAt":240},"ページ遷移が遅い問題：SSR vs SSG の選択ミス","/ssr-vs-ssg-page-transition-slow","2025-12-05T00:00:00.000Z",{"title":242,"path":243,"publishedAt":244},"/blog のカレンダーが一瞬光って消える hydration mismatch を payload null 化で突き止めた","/blog-payload-null-root-fix","2026-06-05T00:00:00.000Z","https://log.eurekapu.com/og/blog/blog-reload-and-slow-transition-investigation.png?v=2025-12-06T00%3A00%3A00.000Z&title=Blog%E5%86%8D%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%A7%E4%B8%80%E8%A6%A7%E3%81%8C%E6%B6%88%E3%81%88%E3%82%8B%EF%BC%86%E8%A8%98%E4%BA%8B%E9%81%B7%E7%A7%BB%E3%81%8C%E9%81%85%E3%81%84%E8%AA%BF%E6%9F%BB%E3%83%A1%E3%83%A2&author=Kei%20Komatsu&sig=ade65d5fbdf55f55",1785654953383]