npm 包 @motokaptia/ember-cli-prerender 使用教程

阅读时长 6 分钟读完

在单页应用程序中,搜索引擎优化(SEO)是一项重要的任务。尽管现代搜索引擎具有处理 JavaScript 渲染的能力,但使用服务器渲染仍然是提高 SEO 的一种有效方法。

@motokaptia/ember-cli-prerender 是一个在服务器上预渲染 Ember.js 应用程序的 npm 包。本文将介绍如何使用 @motokaptia/ember-cli-prerender 来生成预渲染内容,并使其在应用中使用。

安装和配置

使用 @motokaptia/ember-cli-prerender,需要首先安装它:

安装完成后,打开 ember-cli-build.js 文件,并添加以下代码:

-- -------------------- ---- -------
--- --- - --- ------------------ -
  -- ---
  ---------------------- -
    ----------- -------------------
    ----- -
      --------- -- ----- --- --
      ----------
    -
  --
  -- ---
---

上述代码将 ember-cli-prerender 添加到 Ember.js 应用程序中,并配置了要预渲染的 URL 列表。除此之外,也可以配置输出路径。

生成预渲染内容

运行以下命令生成预渲染内容:

运行完成后,预渲染内容将位于指定路径(例如:dist/prerendered/about.html)下。

应用预渲染内容

@motokaptia/ember-cli-prerender 生成的预渲染内容是静态 HTML 页面。我们需要将这些页面加载到应用程序中。

修改 router.js 文件,使其加载预渲染内容:

-- -------------------- ---- -------
------ ------ ---- ------------------------
------ - ------ -- ------- - ---- -----------------

----- ------------------- - ---------------
  ----------------- ----------

  ------ -
    --------------------------

    -- ------------------------------- -
      --------------------
    -
  --

  -------------- -
    ----- ------ - -----

    ------------------------- -----------

    ----- ----------- - ------------------------------------

    ------------------------------------ -- -
      ----------------- -
        --------- ----------------
      ---
    ---
  -
---

---------------------------------- -
  -- ----
---

上述代码添加了一个名为 prerenderService 的服务,该服务提供了所需的功能。然后,我们可以将静态页面映射到应用程序中的路由中。这里的 staticPages 变量是预渲染内容的字典,其键是 URL,值是预渲染内容的 HTML。

最后,我们需要在 application.hbs 文件中添加以下代码:

上述代码基于 prerenderService 服务的使能状态,决定是否呈现动态内容。若服务未使能,则渲染动态内容;否则,渲染静态内容。

示例代码

以下是完整的示例代码:

ember-cli-build.js

-- -------------------- ---- -------
--- --- - --- ------------------ -
  -- ---
  ---------------------- -
    ----------- -------------------
    ----- -
      ---------
      ----------
    -
  --
  -- ---
---

router.js

-- -------------------- ---- -------
------ ------ ---- ------------------------
------ - ------ -- ------- - ---- -----------------

----- ------------------- - ---------------
  ----------------- ----------

  ------ -
    --------------------------

    -- ------------------------------- -
      --------------------
    -
  --

  -------------- -
    ----- ------ - -----

    ------------------------- -----------

    ----- ----------- - ------------------------------------

    ------------------------------------ -- -
      ----------------- -
        --------- ----------------
      ---
    ---
  -
---

---------------------------------- -
  -- ----
---

application.hbs

总结

使用 @motokaptia/ember-cli-prerender 预渲染 Ember.js 应用程序非常容易,只需要几个简单的配置设置和几行 JavaScript 代码。预渲染内容有助于优化应用程序的 SEO,同时提高速度,使页面的加载时间更短。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bcc967216659e2447a3

纠错
反馈