パッチ 2026年2月
Patched 2026/02
2026年2月に実施した、本アプリの追加機能、問題点の修正をまとめます。
- 機能追加
- マークダウン中のリンクカード(最低限)の表示機能の追加
- 投稿者のbioを投稿の下に表示
- 修正
- icon,ロゴ画像のwebp化
- wrangrerファイルでKVの名前がdev/stg/prod環境で違っていた問題の修正
- 管理画面の管理者を弾く処理で一部意図通り拒否できていない問題の修正
機能追加
1. マークダウン中のリンクカード(最低限)の表示機能の追加
Zennなどの多くのブログサイトにある、URLを貼るとそのまま表示時にリンクカードになるものを作成しました。
前までの状態ではURlを貼ったでけではそのまま表示され、さらにそれが長い場合表示からはみ出てスタイルが崩れていたので今回リンクカードを実装することにしました。
ただし、Zenn並みに「タイトル・説明・画像」も出すものはURL先のOGPを取りに行って結果を表示するものだと思われますが、今回は最低限の実装としてマークダウンを変換して表示するのみの実装にしています。
2. 投稿者のbioを投稿の下に表示
投稿者の情報をFooterの上に表示するようにしました。
修正
1. icon,ロゴ画像のwebp化
作成直後にデプロイする時にエラーが出ました
Total Upload: 10955.58 KiB / gzip: 3855.25 KiB
〜割愛〜
✘ [ERROR] Your Worker failed validation because it exceeded size limits.
AIに聞いてみると「OpenNext の Worker バンドルが Free プランの3MiB gzip 圧縮後サイズを超えたため」エラーが出たと言われました。当時色々調べたのですが解決せず、そこで5ドルのWorkerの有用プランに入ることでなあなあにしていました。
そして今回、別のことで画像のサイズやファイル形式について調べていたときに「もしかして、ブログもデプロイされる際に容量の大きな画像が一緒にデプロイされているのでは?」と思いつき調べたところ、案の定icon関係の画像数枚がなぜか2MGBほどあり(おそらくAIが作ったものをそのまま使ったため)それが原因だとわかりました。
そして、該当の画像を.webp形式にすることで容量の問題を解決することができました。
Total Upload: 8325.51 KiB / gzip: 1935.60 KiB
本当は、icon画像などのR2に保存した方が良いと思うので今後その辺りを見直していきます。
2. wrangrerファイルでKVの名前がdev/stg/prod環境で違っていた問題の修正
デプロイに関係する.wrangrerファイルにおいてKVの名前がdev/stg/prod環境で違っていました。
// wrangler.dev.jsonc
"kv_namespaces": [{
"binding": "KV-BIND", // <- ここの名前は揃っていないといけない
"id": "--------------------"
}],
// wrangler.stg.jsonc
"kv_namespaces": [{
"binding": "KV-BINDING", // <- ここの名前は揃っていないといけない
"id": "--------------------"
}],
// wrangler.prod.jsonc
"kv_namespaces": [{
"binding": "KV-BINDING", // <- ここの名前は揃っていないといけない
"id": "--------------------"
}],
ただし、特にまだKVは使っていなかったので実害はありませんでしたが、今後の実装前に気がついてよかったです。
3. 管理画面の管理者を弾く処理で一部意図通り拒否できていない問題の修正
セキュリティの観点から詳しいことに言及できませんが、next.jsでの記述ミスです。 昨今の認証・認可の脆弱性の報告から本当に突破されたら問題のあるページ・処理はmiddlewareだけでなくリアルタイムでのログインの確認も挟んだ方が安全です。
実際、今回の問題でもmiddleware側の処理が正しく働いていたので気がつくのに遅れてしまいました。
以上、Patched 2026/02 でした
Author
主にシステム面で学習したことをまとめています。 フロント、サーバー、インフラ、AIなど細かい分野に絞らずに広く発信していきます。