为什么捐赠
API 浏览器
升级指南
创建新项目
quasar.config 配置文件
从 Webpack 项目转换
浏览器兼容性
TypeScript 支持
目录结构
命令列表
CSS 预处理器
使用 VueRouter 进行页面路由
懒加载 - 代码分割
资源处理
Boot 文件
预取特性
API 代理
配置 Vite
处理 import.meta.env
使用 Pinia 管理状态
代码检查与格式化
测试与审计
开发移动应用
Ajax 请求
开放开发服务器到公网
联系站长
Quasar CLI with Vite - @quasar/app-vite
SSG 的 SEO

警告!Beta 阶段

Quasar SSG 模式目前处于 “beta” 阶段。根据社区反馈,API 在未来可能会有所变动,因此每次升级 “@quasar/app-vite” 时请留意 release notes。

SSG 为爬虫提供了渲染好的 HTML,但每个生成的路由仍然需要准确的标题、描述、canonical URL 和社交分享元数据。在页面组件中使用 Quasar Meta 插件,这样这些值会在构建时被包含进去。

Quasar Meta 插件

Quasar Meta 插件 可以更改页面标题、管理 <meta> 标签、设置 <html><body> 元素的属性、在文档 head 中添加或更新 <style><script> 标签,以及管理 <noscript> 标签。这包括 JSON-LD 等结构化数据。

TIP

Meta 插件与 Quasar 的渲染管线集成,因此在 SSG 页面渲染期间声明的元数据会被包含在生成的 HTML 中。

例如,一个文章页面可以提供其标题、描述、Open Graph 字段和 canonical URL:

/src/pages/ArticlePage.vue

<script setup>
  import { useMeta } from 'quasar'

  const article = {
    title: '选择渲染模式',
    description: '比较 Quasar 应用的 SPA、SSR 和 SSG。',
    url: 'https://example.com/guides/rendering-modes'
  }

  useMeta({
    title: article.title,
    meta: {
      description: {
        name: 'description',
        content: article.description
      },
      ogTitle: {
        property: 'og:title',
        content: article.title
      },
      ogDescription: {
        property: 'og:description',
        content: article.description
      }
    },
    link: {
      canonical: {
        rel: 'canonical',
        href: article.url
      }
    }
  })
</script>

用于创建构建时元数据的数据必须在页面渲染时可用。如果元数据仅在水合之后获取,它将不会出现在生成的 HTML 中。

此外,当站点需要时,请生成并部署 robots.txt 文件和站点地图。这些是站点级文件,不会从 SSG 页面列表自动生成。