Copicode 日本語トップ

サブディレクトリ公開でCSSパスが崩れる時の確認手順

トップページではCSSが効くのに、下層ページやサブディレクトリのページだけ崩れる時は、CSSの書き方そのものより先に「そのページがどこからCSSを探しているか」を確認します。

特にロリポップでは、独自ドメインの公開フォルダ名がURLに出ない場合と、/test//lp/ のようにURLへサブディレクトリ名が出る場合があります。この2つを混ぜると、/assets/css/style.css が正解にも不正解にもなります。

確認日と対象

確認日: 2026年6月12日。ロリポップでHTML/CSS/PHPサイトをFTPまたはSFTPで公開し、下層ページ、サブディレクトリ、テスト用フォルダ、LPフォルダだけCSSや画像が崩れる初心者向けです。

WordPressテーマ、ビルドツール、フレームワークのルーティング設定は対象外です。まず、公開URL、公開フォルダ、CSSファイルのURL、link タグの基準点を分けるための記事として使ってください。

作成方針: このページは、実サイト運用と公開前後の確認をもとに整理しています。構成整理にはAIを補助的に使うことがありますが、危険操作、秘密情報、対象範囲、関連リンクは公開前に確認しています。

先に結論

サブディレクトリでCSSが崩れる時は、すぐ全ページのパスを置換しないでください。先に、公開URLにサブディレクトリ名が出る構成かどうかを分けます。

公開URLの形CSS指定の考え方
https://example.com/page.php サイトの根元から指定するルート相対パスが使いやすい /assets/css/style.css
https://example.com/test/page.php URL上の /test も含めて指定する /test/assets/css/style.css
独自ドメインの公開フォルダが /test だがURLはルート表示 公開フォルダ名はURLに出ないため、URL側の根元から指定する /assets/css/style.css

このページで整理できること

最初に分けること

CSSが崩れている時は、ブラウザキャッシュ、CSSの記述ミス、パス違い、アップロード先違いが混ざりやすいです。まず「どのページでだけ崩れるか」を分けます。

見えている状態最初に疑うこと次に見る場所
トップページは正常で、下層ページだけCSSが崩れる 相対パスが下層ページ基準になっている link href、NetworkのCSS URL、/assets/... かどうか
/test//lp/ 配下だけ崩れる ルート相対パスがドメイン直下を見に行っている 実際のCSS URLが /test/assets/... なのか /assets/... なのか
CSSの直接URLが404 パス違い、アップロード先違い、ファイル名違い FTP右側の場所、公開フォルダ、ファイル名の大文字小文字
CSSの直接URLは200だが、ページだけ崩れる ページが別のCSSを読んでいる、CSS記述ミス、読み込み順 ページHTMLの link、Network、CSSの閉じ括弧
PCは正常でスマホだけ崩れる メディアクエリ、スマホ用CSS、キャッシュ スマホだけ古い表示の確認

サブディレクトリではCSSを探す基準点が変わる

相対パスは今開いているページから探し、ルート相対パスはドメインの根元から探します。ただし、URLに /test/ が出るサイトでは、そのURL上の置き場所も含めて考えます。

サブディレクトリのページで相対パスのCSSが崩れる理由と公開URLの形に合わせてCSSパスを確認する図解

すぐ一括置換しない

原因が分からないまま assets/ を全部 /assets/ に置換すると、https://example.com/test/ 配下で公開しているサイトでは逆に壊れることがあります。

  • 本番URLにサブディレクトリ名が出るか確認する
  • CSSの直接URLを開き、404/403/200を確認する
  • 1ページだけ直してから、他のページへ広げる
  • AIにFTP情報、管理画面URL、DB情報を貼らない
  • .htaccess やリダイレクトで無理に隠そうとしない

1. CSSの直接URLを確認する

まず、ページが読み込もうとしているCSS URLを直接開きます。ブラウザの開発者ツールでNetworkを開き、style.css のURLとステータスを見ます。

CSS URLの状態意味次の確認
200 CSSファイル自体は取得できている CSSの中身、読み込み順、キャッシュ、セレクタを確認
404 指定した場所にCSSがない パス、公開フォルダ、FTP上の置き場所を確認
403 存在するが見せられていない可能性 パーミッション、.htaccess、直リンク制限を確認

2. 相対パスがどこを見ているか確認する

assets/css/style.css のような相対パスは、今開いているページの階層から見た場所になります。下層ページで使うと、存在しない場所を見に行くことがあります。

<!-- 下層ページでは壊れやすい例 -->
<link rel="stylesheet" href="assets/css/style.css">

ページURL:
https://example.com/templates/lolipop/page.php

ブラウザが探すCSS:
https://example.com/templates/lolipop/assets/css/style.css

3. 公開URLにサブディレクトリ名が出るか確認する

ルート相対パスは便利ですが、サイトを本当に /test//lp/ の下で公開している場合は、先頭の / がドメイン直下を指します。

公開の形CSS指定の例注意
ドメイン直下で公開 <link rel="stylesheet" href="/assets/css/style.css"> 下層ページでも同じCSSを見に行ける
/test/ の下で公開 <link rel="stylesheet" href="/test/assets/css/style.css"> /assets/... だとドメイン直下を見てしまう
独自ドメインの公開フォルダが /test <link rel="stylesheet" href="/assets/css/style.css"> URLが https://example.com/ なら公開フォルダ名はURLに出ない

4. サブディレクトリ公開用の基準パスを決める

/test//lp/ 配下でサイトを見せ続けるなら、基準パスを1つ決めておくと、CSS、画像、JavaScriptの指定をそろえやすくなります。

<?php
$base_path = '/test';
?>
<link rel="stylesheet" href="<?= $base_path ?>/assets/css/style.css">
<script src="<?= $base_path ?>/assets/js/app.js" defer></script>
<img src="<?= $base_path ?>/assets/images/main.jpg" alt="">

ドメイン直下へ移す予定があるなら、移動時に $base_path = ''; へ変えるだけで済むようにしておくと、修正範囲を小さくできます。

5. 公開フォルダとURLの違いを見る

FTP上の場所とブラウザのURLは、同じ文字列になるとは限りません。ロリポップの独自ドメインで公開フォルダを指定している場合、公開フォルダ名はURLに出ないことがあります。

FTP上の場所ブラウザで見るURL考え方
/example/index.php https://example.com/ 公開フォルダ /example はURLに出ない
/example/assets/css/style.css https://example.com/assets/css/style.css CSSはURL上では /assets/... になる
/example/test/assets/css/style.css https://example.com/test/assets/css/style.css URLに /test が出るならCSSにも必要

6. 画像やJavaScriptも同じ考え方で見る

CSSだけでなく、画像、JavaScript、SVG図解、OGP画像も同じように階層で崩れます。ページの階層が深いほど、相対パスはずれやすくなります。

AIに貼る相談メモ

AIに相談する時は、FTP情報や管理画面情報ではなく、公開URL、CSSの直接URL、link タグ、ファイルの置き場所を整理します。

ロリポップでサブディレクトリのページだけCSSが崩れています。

崩れているページURL:
例: https://example.com/test/page.php

正常に見えるページURL:
例: https://example.com/

CSSのlinkタグ:
例: <link rel="stylesheet" href="assets/css/style.css">

ブラウザが実際に読み込もうとしているCSS URL:
例: https://example.com/test/assets/css/style.css

CSSの直接URLを開いた結果:
例: 200 / 404 / 403 / 古いCSSが出る

ロリポップの公開フォルダ:
例: /example

FTP上のCSSの場所:
例: /example/test/assets/css/style.css

公開URLにサブディレクトリ名が出るか:
例: 出る / 出ない / 分からない

伏せている情報:
FTPホスト、FTPユーザー名、FTPパスワード、管理画面URL、DB接続情報、個人情報

相対パス、ルート相対パス、公開フォルダ、URL上のサブディレクトリのどこが原因か、次に確認する順番を教えてください。

制作会社やサーバー会社へ聞く時の文面

自分で判断しきれない時は、接続情報ではなく、URLと確認結果だけを伝えます。入力しながら整理したい場合は、問い合わせ文メーカー公開フォルダ・アップロード先確認メモメーカーを使います。

サブディレクトリ配下のページだけCSSが崩れる件で確認したいです。

崩れているURL:
https://example.com/test/page.php

正常に見えるURL:
https://example.com/

CSSの直接URL:
https://example.com/test/assets/css/style.css

確認結果:
- CSSの直接URLは 200 / 404 / 403 でした
- ページ内のlinkタグは次の指定でした:
- ロリポップ側の公開フォルダは次の設定です:
- FTP上のCSSの場所は次の場所です:

確認したいこと:
公開URLに出るサブディレクトリ名と、FTP上の公開フォルダ・CSSの置き場所が合っているか確認したいです。

FTPパスワード、DB接続情報、管理画面ログイン情報は記載していません。

公式情報で確認するところ

公開フォルダやアップロード済みファイルの見え方は、サーバー側の設定に関わります。画面名や仕様が変わる可能性があるため、最後はロリポップ公式情報でも確認してください。

確認したいこと公式情報この記事での使い方
公開フォルダの意味 ロリポップ公式 公開フォルダとは FTP上のフォルダ名と、URLに出るパスを分ける時に使います。
アップロード後に表示・更新されない ロリポップ公式 アップロード済みファイルが表示・更新されない URL違い、ファイル名違い、キャッシュ、DNSなど、CSS以外の原因も確認します。
FTPソフトの設定 ロリポップ公式 各種FTPソフトの設定方法 FileZillaやWinSCPで、右側のフォルダとアップロード先を確認する時に使います。

次に読む記事