Laravel Jetstream
New authentication scaffolding for laravel 8
Laravel Jetstream 是隨著 Laravel 8.x 一同釋出的新套件
同樣由 Laravel 之父 Taylor Otwell 所開發
它提供了登入、註冊、信箱驗證、雙重驗證、Session管理等功能
可以快速為新專案提供一個好的開始
本篇簡述安裝 Jetstream 的過程
建立專案
|
|
laravel 8.x 支援在建立專案時就選擇載入 jetstream,指令如下
|
|
若沒有在建立專案時就選擇載入 jetstream,循下文用 composer 再 require 進來即可
安裝 Jetstream
Jetstream 提供 livewire
與 inertia
兩種 frontend stacks (我不知道怎麼翻,就翻"特殊前端框架"吧)
安裝 Jetstream 時必須 2 擇 1 ,這裡選擇安裝 livewire
而不管選哪一個,開發時都可以選擇是否使用,或是局部使用
我目前只知道 livewire
好像是 for 對前端框架不那麼熟悉的後端開發者所做的工具
而 inertia
像是可以在 laravel 這個框架上更舒適的使用 Vue.js
詳細教學可以查看官方文件(livewire / inertia)
安裝 Jetstream 的指令如下:
|
|
因為 jetstream 它包含了上述框架與 tailwindcss(比 Bootstrap 更有彈性的css架構),所以安裝好它會提示你要執行以下指令
來將上述框架的 js, css 一起打包到 public/css/app.css
與 public/css/app.js
|
|
設定資料庫
在本機端建一個名為 jetstream 的資料庫,並設定 .env
|
|
執行 migration
|
|
到目前為止就算部署完成了,相當簡單,可以執行 php artisan serve
就會看到首頁右上角多了 Login 與 Register 的按扭
並且註冊、登入等功能也真的可以正常運作
真的是 5 commands save you 5 days in 5 minutes (而且大部份時間都在等安裝而已) XD
(optional)設定 public disk link
如果有用到 jetstream 上傳圖片的功能,可能會遇到上傳的圖片破圖的問題,以下為相關說明:
config/filesystems.php
(檔案系統設定) 紀錄所有磁碟(disk)的設定
每個磁碟設定對應一組儲存驅動與儲存位置(預設有 local, public, s3 三個磁碟設定)
其中 public disk 理論上是要放「能被公開存取的檔案」
但 public disk 預設將檔案存到 storage/app/public
,這個位置是無法被公開存取的 (整個網站公開對外的資料夾為 public)
故需執行以下指令,在 public 產生一個 storage 的捷徑,如此 jetstream 上傳的照片就能夠被存取到了
|
|
總之就是執行上行指令就對了,對於這個指令的詳細說明可以再參考 Laravel 之有關 storage:link 路徑設置 或 官方說明