Laravel - Laravelの構造
ナビゲーションに移動
検索に移動
概要
ディレクトリ構成
ディレクトリ名 | 説明 |
---|---|
app | アプリケーションのプログラム部分が存在するディレクトリである。 アプリケーションの開発時には、必要なスクリプトファイルを追加する。 |
bootstrap | アプリケーションの起動時に実行される処理(laravelフレームワークの起動コード)が存在する。 |
config | 設定ファイルが存在するディレクトリである。 |
database | データベース関連のファイルが存在する。 MigrationファイルなどDB関連のファイル等が配置される。 |
public | 公開ディレクトリである。 CSS、JS等の外部に公開するファイルを配置する。 NginXおよびApache2のドキュメントルートの設定では、このディレクトリを指定する。 |
resources | プログラムが使用するリソース関連のファイル(例: ビューや言語変換用ファイル等)が存在するディレクトリである。 プログラムのテンプレートファイル等が存在する。 |
routes | ルーティング情報が保存されているディレクトリである。 アクセスするアドレスに割り当てられるプログラムの情報等が記載されている。 |
storage | アプリケーションのプログラムが保存するファイル等(例: ログファイル)を配置する。 |
tests | ユニットテスト関係のファイルが存在するディレクトリである。 テストコード等を配置する。 |
vendor | フレームワーク本体のプログラムが存在するディレクトリである。 Composerでインストールしたライブラリが保存されている。 |
resourcesディレクトリとpublicディレクトリの違い
resources ディレクトリ
ソースコードを配置する場所であり、コンパイル / バンドル前のファイルが置かれる。
Sass, TypeScript, モダンなJavaScript (ES6+) 等の開発用コードを配置する。
また、npmパッケージからインポートしたコードも含める。
これは、Vite / Webpackにより処理される前の状態である。
publicディレクトリ
Webブラウザから直接アクセス可能なファイルを配置する。
Webブラウザが解釈できる形式 (通常のCSS, ES5 JavaScript)
コンパイル / バンドル済みのファイルである。
(最適化・圧縮済みの本番向けのコード等)
(アセットのビルド後の出力先)
具体例
// resources/css/app.scss
@import 'variables';
.button {
@apply bg-blue-500;
&:hover {
@apply bg-blue-600;
}
}
// public/css/app.css (コンパイル後)
.button {
background-color: #3b82f6;
}
.button:hover {
background-color: #2563eb;
}
開発フロー
- resources 下で開発を行う。
- vite build / npm run build でコンパイル。
- 結果がpublicディレクトリに出力される。
- publicのファイルがWebサーバから配信される。
resourcesは開発向け、publicは本番配信向けという役割の違いがある。