AIToday
AIコーディングZenn AI/ML掲載日時: 2026年10月12日 10:00

CDNなしでサイトを構築

LINEで送る
CDNなしでサイトを構築

3つのポイント

  1. 何が起きたか

    著者は小規模事業のサイトをClaude CodeとPythonだけで作り、外部CDNやnpm、JavaScriptフレームワークを1本も読み込まない構成にした。

  2. なぜ重要か

    外部ライブラリへの依存を外す判断は、ファイルを直接開いたときにリンクが壊れるなど、依存があると確認作業そのものが成立しない箇所があったためとみられる。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

このサイトは2つのフォルダに書き出している。1つは手元で file:// で開いて確認する用、もう1つは公開する用である。リンクを href="/blog/..." のようなルート絶対パスで書くと公開側では動くが、手元で開いたときは / がドライブの根っこを指して1つもつながらなくなる。確認作業そのものが止まるため、相対パスを機械的に強制する仕組みが必要になったとみられる。

商品ページは別のスクリプトがCSV台帳から組む。台帳はExcelで編集するため保存時に先頭へBOMが入り、utf-8で読むと1列目のキーが「公開」ではなく「公開」になる。r.get("公開") はNoneを返し、公開中の商品が0件のままエラーも出ずに通ってしまう。このときHTMLは「商品が1つもない一覧ページ」として正しく生成されるため、見るまで気づけない。

写真は幅900pxに縮めたあと、既存ファイルとバイト列を比べて同じなら書かない。比べる前は実行のたびに更新時刻が動き、中身が同じでもすべてが変更扱いになっていた。公開をやめた商品の写真は消し、載せていない機体の画像だけがサーバーに残らないようにしている。sitemapのlastmodも手書きをやめ、HTMLのハッシュを控えと比べて変わったページだけ今日の日付にした。控えを始めた日より前のページはdateをNoneにしてlastmodの行自体を出さない。推測の日付を入れるより無いほうが正しいという判断である。

よくある質問
何を使えば同じ構成にできますか?
Claude CodeとPythonだけで作られており、npmやCDN、JavaScriptフレームワークは使っていない。各ページを辞書で持ち、Pythonスクリプト1本でまとめて書き出す。
公開前の点検では何を確認していますか?
禁止文字列・ルート絶対パス・リンク切れ・タグ不一致・altの無いimgを同じスクリプトで見ている。リンク切れはhrefやsrcの相対パスを基準ディレクトリと結合し、存在しなければ止める。
商品ページはどう作っていますか?
CSV台帳22行のうち「公開」が「はい」の17件だけを拾い、並び順で並べ替えて別のスクリプトが組む(2026-10-02時点・自社集計)。HTMLを手で触る場所は無い。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へBroadcom、ASIC収益が来年1150億ドルへ