LaravelにSPAを組み込む時に考えたディレクトリ構成とnginxのconfファイル

概要

Laravelで作っているアプリケーションに管理画面だけSPAを実装しようとした時、Laravelのディレクトリ構成とnginxのconfファイルをちょっとだけいじった話です。 初めての試みだったのでメモがてらまとめました。

Laravelのディレクトリ構成

バックエンドで完結するアプリをbackend-app、フロントエンドで完結するアプリをfrontend-appとし、ディレクトリを大きく分けました。 backend-appではユーザー側の画面やAPIやバックエンドの処理を担当し、フロントエンドはSPAの管理画面を担当しています。 ユーザー側の画面もfrontend-appの範疇な気がしますが、その辺は追々切り出していくことにします。 バラバラに切り出すならフルスタックなフレームワークから脱却した方がいいのかもしれませんね。。。 とりあえず今回はフロントはフロント、バックはバックで管理しやすいような構成にしてみました。

ちなみこの構成はgithubで「Laravel SPA」とか「Laravel React」とかで調べていたらよく見受けられた構成を参考にしたものです。

nginxのconfファイル

locationディレクティブをbackend-appfrontend-appで分けました。 serverディレクティブで分ける場合はサブドメインを切る運用方法になるかと思いますが、それだと今回のアプリケーションの場合微妙だと思ったのでやめました。 もっと設定を頑張る必要がある気がしますが勘弁してください(_)。。。

※修正(2017/4/2追記)

spaでルート以下のURL(ex. laravel-app/dashboard/post)を直打ちまたはリロードすると404エラーが発生するので、修正しました。

修正前

修正後

所感

オススメの構成や参考になりそうなリポジトリあったら教えてください〜

参考