カテゴリ: CodeIgniter 更新日: 2026/04/27

CodeIgniterのビューとCSS・JavaScriptを連携させる方法!初心者向け完全解説

CodeIgniterのビューとCSS・JavaScriptを連携させる方法
CodeIgniterのビューとCSS・JavaScriptを連携させる方法

先生と生徒の会話形式で理解しよう

生徒

「CodeIgniterで作ったWebサイトに色をつけたり、動きを加えたりしたいです!」

先生

「それにはCSSやJavaScriptというファイルを使います。CodeIgniterのビューと連携させるコツがあるんですよ。」

生徒

「普通のHTMLと同じように書けばいいんですか?」

先生

「基本は同じですが、CodeIgniterには『決まった置き場所』があります。初心者の方でも分かりやすく説明しますね!」

1. CodeIgniterにおけるビューと外部ファイルの基本

1. CodeIgniterにおけるビューと外部ファイルの基本
1. CodeIgniterにおけるビューと外部ファイルの基本

プログラミングの世界では、画面の見た目を作る担当をビュー(View)と呼びます。CodeIgniter(コードイグナイター)というPHPのフレームワークを使っている場合、このビューは主にHTMLで書かれます。

しかし、HTMLだけでは「文字が並んでいるだけの地味なページ」になってしまいます。そこで必要になるのが、デザインを整えるCSS(シーエスエス)と、ボタンを押した時の動きなどを作るJavaScript(ジャバスクリプト)です。

初心者の方が最初につまずくポイントは、「これらのファイルをどこに置いて、どうやって読み込ませるか」という点です。CodeIgniterには「公開ディレクトリ」という特別なルールがあるため、まずはその場所を理解することから始めましょう。

2. ファイルを置く場所「publicフォルダ」をマスターしよう

2. ファイルを置く場所「publicフォルダ」をマスターしよう
2. ファイルを置く場所「publicフォルダ」をマスターしよう

CodeIgniterでWebサイトを作るとき、画像やCSS、JavaScriptなどのファイルは、必ずプロジェクトの中にある「public」フォルダの中に入れます。なぜなら、インターネットを通じて外部からアクセスできるのは、このフォルダの中身だけと決まっているからです。

例えば、家をイメージしてください。家の中(システムの中身)には勝手に入られたくないですよね?でも、郵便ポスト(publicフォルダ)なら誰でも触れます。CSSやJavaScriptは、ブラウザが読みに行く必要があるため、この「ポスト」の中に置く必要があるのです。

一般的には、publicフォルダの中にさらにフォルダを作って整理します。

  • public/css/ ・・・ CSSファイルを入れる
  • public/js/ ・・・ JavaScriptファイルを入れる
  • public/images/ ・・・ 写真やイラストを入れる
このように整理整頓することで、後から見たときにも分かりやすいプログラムになります。

3. helperを使ってURLを簡単に取得する方法

3. helperを使ってURLを簡単に取得する方法
3. helperを使ってURLを簡単に取得する方法

ファイルを読み込むとき、ファイルの場所を「URL(住所)」で指定する必要があります。しかし、自分のパソコンで動かしているときと、本番のサーバーで動かしているときでは、この住所が変わってしまうことがあります。

そこで便利なのがCodeIgniterのURLヘルパー(helper)です。これを使うと、自動的にサイトの正しい住所を取得してくれるbase_url()という便利な命令が使えるようになります。これを使うためには、コントローラーという司令塔の部分でヘルパーを読み込む必要があります。


// コントローラーでの記述例
public function index()
{
    // URLヘルパーを読み込む(これでbase_urlが使えるようになる)
    helper('url');
    
    // ビューを表示する
    return view('welcome_message');
}

この一行を書くだけで、複雑な住所の問題を魔法のように解決してくれます。プログラミング未経験の方でも、「まずはこれを書くんだな」と覚えておけば大丈夫です。

4. ビューでCSSを読み込む具体的な手順

4. ビューでCSSを読み込む具体的な手順
4. ビューでCSSを読み込む具体的な手順

さて、いよいよビュー(HTMLファイル)の中でCSSを読み込んでみましょう。HTMLの<head>というタグの中に、リンクを貼るためのコードを書きます。ここで先ほどのbase_url()が活躍します。


<!DOCTYPE html>
<html>
<head>
    <title>CodeIgniter練習中!</title>
    <link rel="stylesheet" href="<?= base_url('css/style.css') ?>">
</head>
<body>
    <h1 class="text-primary">こんにちは!</h1>
    <p>CSSが適用されると、この文字に色がつくよ。</p>
</body>
</html>

<?= base_url('css/style.css') ?> という部分は、PHPの短い書き方で「サイトの住所の後に /css/style.css をくっつけて表示してね」という意味になります。これなら、フォルダを移動してもリンク切れが起きにくくなります。

5. JavaScriptで動きをつける連携方法

5. JavaScriptで動きをつける連携方法
5. JavaScriptで動きをつける連携方法

次に、JavaScriptを読み込んでみましょう。JavaScriptは、一般的に画面の読み込みを邪魔しないように、一番下(</body>の直前)に書くのが一般的です。これもCSSと同じように、base_url()を使って場所を教えてあげます。


<button id="myButton">ここをクリック!</button>

    <script src="<?= base_url('js/main.js') ?>"></script>
</body>
</html>

これで、public/js/main.jsに書いた「ボタンを押したらメッセージを出す」といったプログラムが、自分のWebページで動くようになります。連携はたったこれだけです!

6. 実際に動くか確認してみよう!実行結果のイメージ

6. 実際に動くか確認してみよう!実行結果のイメージ
6. 実際に動くか確認してみよう!実行結果のイメージ

正しく設定できれば、ブラウザで見たときにデザインが反映されます。例えば、CSSで文字を赤くし、JavaScriptでアラートが出るようにした場合、以下のような結果になります。


(ブラウザの表示結果)
・「こんにちは!」という文字が青色になっている
・ボタンを押すと「ボタンが押されました!」という小さな窓(アラート)が出る

もし、何も変わらない場合は、ブラウザの「開発者ツール」という機能(キーボードのF12キー)を使って、ファイルが読み込めているか確認しましょう。赤文字でエラーが出ていなければ成功です!

7. よくある失敗!リンク切れを防ぐコツ

7. よくある失敗!リンク切れを防ぐコツ
7. よくある失敗!リンク切れを防ぐコツ

初心者の方が一番ハマるのが「ファイルが見つかりません(404 Not Found)」というエラーです。これは、指定した住所にファイルが置いていないことが原因です。以下のポイントをチェックしてみてください。

  • スペルミス: cssと書いてあるか、sisになっていないか。
  • 大文字小文字: Style.cssとstyle.cssは、コンピューターにとっては別のものです。
  • フォルダ階層: publicの中にちゃんとフォルダを作っていますか?

特にCodeIgniterでは「publicフォルダより上の階層」にあるファイルは、セキュリティの関係でブラウザから見ることができません。必ずpublicフォルダの中に入れる、というルールを徹底しましょう。

8. テンプレートエンジンを意識した効率化

8. テンプレートエンジンを意識した効率化
8. テンプレートエンジンを意識した効率化

慣れてきたら、すべてのページで同じCSSやJavaScriptを書くのは大変だと気づくでしょう。そんな時は、CodeIgniterの「レイアウト」機能を使います。ヘッダー(頭の部分)やフッター(足の部分)を共通のファイルとして作っておき、中身だけを入れ替える仕組みです。

この仕組みを使うと、CSSの読み込みコードを1箇所書き換えるだけで、サイト全体のデザインを一気に変更できるようになります。これがプログラミングの「再利用性」という考え方で、効率よく開発するための第一歩です。


// app/Views/layout/main.php(共通テンプレート)
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="<?= base_url('css/bootstrap.min.css') ?>">
</head>
<body>
    <?= $this->renderSection('content') ?>
    <script src="<?= base_url('js/app.js') ?>"></script>
</body>
</html>

このように共通化することで、初心者でも大規模なサイトを管理しやすくなります。まずは1枚のページから始めて、少しずつこうした便利な機能に挑戦していきましょう!

カテゴリの一覧へ
新着記事
New2
Symfony
SymfonyでAPI向けにカスタムエラーメッセージを返す方法を解説!初心者でも安心のバリデーション基礎
New3
Symfony
Symfonyの動的フォームフィールド追加・削除を完全ガイド!初心者でもわかるフォーム操作入門
New4
Laravel
LaravelのMailableクラスの使い方を完全解説!初心者でもできるメール送信管理
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのセッション管理を徹底解説!値を保存・取得する基本操作
No.2
Java&Spring記事人気No2
Laravel
Laravelのnow()・today()関数の使い方完全ガイド!初心者でもわかる日時処理と日付操作
No.3
Java&Spring記事人気No3
Laravel
Laravelのabort()関数でエラーを返す方法!初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Symfony
Symfony Twig入門|条件分岐とループをやさしく理解するテンプレート活用術
No.5
Java&Spring記事人気No5
Laravel
Laravelの日付バリデーションの使い方を完全解説!初心者でも安心の丁寧ガイド
No.6
Java&Spring記事人気No6
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelの@eachディレクティブで簡単に繰り返しテンプレートを表示する方法
No.8
Java&Spring記事人気No8
Symfony
Symfonyのコントローラで例外処理を追加する方法をやさしく解説!初心者でも安心して学べる