Skip to main content

前言

laravel/head 是以流暢式 API 管理應用文件 <head> 的 Laravel 官方套件。支援 title、meta 標籤、Open Graph、canonical URL、robots 指令、效能提示、結構化資料,可在 Blade、Livewire、Inertia 中運作。2026 年 7 月 28 日發佈 v0.1.0。

解析優先順序

頁面的 head 資料由優先度低到高分為以下 5 層解析:
  1. 頁面預設值
  2. 路由群組中繼資料
  3. 路由中繼資料
  4. 執行時中繼資料
  5. 錯誤頁面中繼資料
上層會以欄位為單位覆寫下層。例如執行時設定的 title 會取代路由的 title,但不會取代 description。

註冊預設值

在 Service Provider 註冊整站預設值。
預設層是優先度最低的頁面層。除非上層設定了 title 否則會顯示 Acme,若上層設定了 title,繼承的 suffix 也會套用(Head::title('About') 會變成 About - Acme)。

路由中繼資料

靜態頁面可直接把中繼資料附掛到路由定義。
也可以套用共通中繼資料到整個群組。
withHead() 會透過 Laravel 標準的路由中繼資料 API(->metadata()head key 下)以純陣列保存,因此與路由快取相容。

執行時中繼資料

像文章標題那樣要等到請求進來才知道的值,可用 Head Facade 在執行時設定。
條件式中繼資料可用 when() / unless() 流暢寫出。

錯誤頁面

也能依狀態碼註冊中繼資料。
已註冊的錯誤狀態被繪製時,這些中繼資料會優先於其他任何層。

Open Graph 與 Twitter Card

可用 og() 設定 Open Graph 屬性,並用 ogImage() 等方法加入影像、影片、音訊。
document 的 titledescription 會自動補上未設定的 og:title / og:description Twitter Card 只要在預設值註冊,就會自動用與 Open Graph 相同的 title、description、影像繪製。
也可在個別頁面明確覆寫 Twitter 的值。

PWA、效能與 icon

pwa() helper 可一次設定可安裝 Web 應用所需的 <head> 標籤。

主題色

主題色可在全域、路由、執行時任一層設定。使用 Media enum 可為不同媒體指定主題色。
Media 也包含 PortraitLandscape

應用中繼資料與 icon

Laravel Head 內含瀏覽器與應用一般中繼資料的 helper。
favicon()icon() 的別名,接受相同的 typesizesmedia 參數。

效能與可發現性

Laravel Head 也能繪製效能提示、分頁連結、語系替代、Feed 發現用標籤。
preloadAsset() / prefetchAsset() 會以 asset() helper 解析 URL,並依副檔名自動判斷 as 屬性。

自訂標籤

沒有專屬方法的標籤可用 meta() / link() 加入。
meta() 對一般 meta 標籤使用 name=,若鍵值原本應使用 property=(如 Open Graph og: 或 article 中繼資料 article:),會自動切換。

結構化資料(JSON-LD)

內建的 schema builder 涵蓋主要 JSON-LD 類型。
內建的 factory 方法包括 articleblogPostingproductofferbrandbreadcrumbsfaqorganizationpersonwebPagewebSite。未定義的 factory 方法會回退到通用的 schema 物件,因此也能表達自訂 schema.org 類型。 麵包屑項目可逐一或一次加入,位置會依加入順序自動指定。
FAQ 問題也是相同模式。可用 question() 逐一加入或用 questions() 一次加入。
自訂 schema 類型可明確註冊。

總結

laravel/head 能跨 Blade、Livewire、Inertia 統一管理 SEO 與社交分享所需的中繼資料。透過預設、路由、執行時、錯誤頁面的 5 層架構,可保持整站一致,也能對每個頁面做彈性客製。

laravel/head 儲存庫

原始碼與最新資訊請見此處。
最後修改於 2026年8月2日