前言
laravel/head 是一款以流畅的 API 管理应用文档<head> 的 Laravel 官方包。支持 title、meta 标签、Open Graph、canonical URL、robots 指令、性能提示、结构化数据,可在 Blade、Livewire、Inertia 中运行。v0.1.0 于 2026 年 7 月 28 日发布。
解析优先级
页面的 head 数据按优先级从低到高由以下 5 层解析:- 页面默认值
- 路由组元数据
- 路由元数据
- 运行时元数据
- 错误页面元数据
默认值注册
在服务提供者中注册整个站点的默认值。Acme;当上层设置 title 时,会应用继承来的 suffix(Head::title('About') 会变为 About - Acme)。
路由元数据
静态页面可以直接在路由定义中绑定元数据。withHead() 通过 Laravel 标准的路由元数据 API(->metadata() 的 head 键下)保存的是纯数组,因此与已缓存的路由也保持兼容。
运行时元数据
对于像文章标题这类只有当请求到达时才能确定的值,可以通过Head 门面在运行时设置。
when() / unless() 以流畅方式书写。
错误页面
也可以为每种状态码注册元数据。Open Graph 与 Twitter Card
使用og() 设置 Open Graph 属性,并可以通过 ogImage() 等方法添加图像、视频、音频。
title 和 description 会自动补全未设置的 og:title / og:description。
Twitter Card 只需注册到默认值中,就会自动使用与 Open Graph 相同的 title、description 和图像进行渲染。
PWA / 性能 / 图标
pwa() 辅助方法会一起设置可安装 Web 应用所需的 <head> 标签。
主题色
主题色可以在全局、路由和运行时任一层级设置。使用Media 枚举也可以按 media 区分指定不同的主题色。
Media 还包含 Portrait 和 Landscape。
应用元数据与图标
Laravel Head 内置了浏览器和应用常见元数据的辅助方法。favicon() 是 icon() 的别名,接受相同的 type、sizes、media 参数。
性能与可发现性
Laravel Head 也可以渲染性能提示、分页链接、locale 备用表示以及供订阅发现的标签。preloadAsset() / prefetchAsset() 会使用 asset() 辅助函数解析 URL,并从扩展名自动检测 as 属性。
自定义标签
对于没有专用方法的标签,可以使用meta() / link() 添加。
meta() 对普通 meta 标签使用 name=,但对 Open Graph(og:)或文章元数据(article:)等本应使用 property= 的键会自动切换。
结构化数据(JSON-LD)
内置的 schema 构建器涵盖了主要的 JSON-LD 类型。article、blogPosting、product、offer、brand、breadcrumbs、faq、organization、person、webPage、webSite。未知的工厂方法会回退到通用 schema 对象,因此也可以表示自定义的 schema.org 类型。
面包屑列表的项可以逐个添加,也可以一次性添加。位置会按添加顺序自动分配。
question() 逐个添加,也可以使用 questions() 批量添加。
小结
laravel/head 是一款可以在 Blade、Livewire、Inertia 之间集中管理 SEO 与社交分享所需元数据的包。通过默认值、路由、运行时、错误页面等多层结构,既能保持整个站点的一致性,也能对每个页面进行灵活的定制。
laravel/head 仓库
源代码与最新信息请见此处。