npm 包 ember-cli-prerender 使用教程

在前端开发中,SEO 是一个非常重要的问题。而在单页面应用 (SPA)中,由于它建立在 JavaScript 框架上,通常会导致搜索引擎无法正确地读取页面内容。这时候我们需要一种解决方案,使得搜索引擎可以正确抓取渲染出的内容,这就是 prerendering。

在 Ember.js 项目中,我们可以使用官方依赖的扩展 ember-cli-prerender 来实现 prerendering 的功能。

ember-cli-prerender 是什么?

ember-cli-prerender 是一个 Ember 插件,用于在构建应用时自动预渲染路由页,生成静态 HTML 文件,以便在搜索引擎爬取我们的站点时能够读取渲染出的内容。

安装和使用

安装

在项目目录中执行以下命令安装 ember-cli-prerender:

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

配置

  1. 打开 config/environment.js 文件,在 ENV 变量下添加以下配置:
-- ------------ --- ------------- -
    ------------- - -
        -------- -----
        ----- -
            ----
            ---------
            -----------
            -----------
        -
    -
-

以上配置会告诉 ember-cli-prerender,只在生产环境下启用 prerender 功能;并且我们明确指定需要在预渲染过程中生成的路由页面。

如果你的项目使用了动态路由,你需要在这里声明所有可能的路由,比如 '/blogs/:id'。

  1. 将以下内容添加到 robots.txt 文件中:
----------- -
--------- ------------

上面的配置会告诉搜索引擎爬虫不要爬取 _prerender 目录。

生成

在生产环境下运行以下命令,将静态 HTML 文件生成到 _prerender 目录中:

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

接下来,我们需要启动一个 HTTP 服务器并让其从 _prerender 目录中提供文件。最简单的方法就是使用 Node.js 自带的 http-server 模块。

在启动 HTTP 服务器前,我们需要先安装 http-server 模块,执行以下命令进行安装:

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

安装完成后,在 _prerender 目录中执行以下命令,启动 HTTP 服务器:

-----------

启动成功后,在浏览器中访问 http://localhost:8080/,我们就可以看到我们的站点了。

深入理解

ember-cli-prerender 使用了 Google 开发的 Puppeteer 库来实现 prerendering。

在预渲染的途中,它通过启动一个虚拟的浏览器实例(Headless Chrome)来访问页面,将页面的 HTML 代码和渲染后的内容提取出来,并将其保存为 HTML 文件。

由于该过程中涉及到浏览器环境及网页渲染,为了保证预渲染的效率和质量,我们需要遵守以下几个约定:

  • 避免在 Ember 路由上使用大量的计算属性和操作 DOM 元素的代码;
  • 控制好每个页面的渲染时间;
  • 在模板里使用 {{please-prerender}} Helper 标注渲染出的内容,以防止搜索引擎未能正确识别渲染出的内容。

示例

以下是一个使用 ember-cli-prerender 的实际例子。

  1. 安装依赖:
----- --- ------
-- ------
----- ------- -------------------
  1. 构建预渲染页面

修改 config/environment.js 文件:

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

app/templates/application.hbs 文件中添加:

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

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

----- --- ----
  1. 生成预渲染文件

在生产环境下运行以下命令:

----- ----- ------------------------
  1. 启动预渲染服务

执行以下命令安装 http-server 模块:

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

_prerender 目录中执行以下命令,启动 HTTP 服务器:

-----------
  1. 查看效果

在浏览器中访问 http://localhost:8080/,我们就可以看到我们的站点了。

总结

在实际项目中,预渲染技术不仅可以改善搜索引擎的爬虫效果,同时也可以提高站点访问速度和用户体验。

ember-cli-prerender 插件可以大大简化预渲染过程,让我们可以更加专注于前端开发。

以上是本文对 npm 包 ember-cli-prerender 的使用教程,希望能够帮助大家更好地了解 prerender 技术并使用 ember-cli-prerender 应用到实际项目中。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60057c4081e8991b448ebc5b


猜你喜欢

  • NPM包@mprokopowicz/jxa-executor 使用教程

    简介 在日常的前端开发中,我们可能会涉及到Mac操作系统相关的任务。而JavaScript作为一门语言,其运行环境很难在Mac平台上实现。而JXA(JavaScript for automation)...

    3 年前
  • npm 包 vue-event-calendar-minds 使用教程

    今天要介绍一个 Vue 前端开发中非常实用的 npm 包,那就是 vue-event-calendar-minds。该包是一个基于 Vue 的事件日历组件,可以帮助开发者轻松构建具有日历功能的网站和应...

    3 年前
  • npm包litecore-tealcoin-lib 使用教程

    在前端开发中,常常需要调用一些外部的 JavaScript 库,例如 litecore-tealcoin-lib 库用于 Tealcoin 相关操作。本文将向您介绍如何使用该库,并提供实际代码示例以供...

    3 年前
  • npm 包 file-wrapper 使用教程

    在前端开发中,经常需要处理文件相关的操作,如读取文件、写入文件、复制文件等等。而 npm 包 file-wrapper 就是一款非常方便的对文件进行操作的工具。本文将详细介绍 file-wrapper...

    3 年前
  • npm 包 @bagvj/my-cache 使用教程

    简介 随着前端应用的不断发展,前端的本地缓存成为越来越重要的一部分。npm 包 @bagvj/my-cache 为前端应用提供了一种方便的本地缓存解决方案。它支持使用简单的 API 进行数据存储和检索...

    3 年前
  • npm 包 litecore-tealcoin-message 使用教程

    前言 litecore-tealcoin-message 是一个开源的 npm 包,用于在前端实现 Tealcoin 的消息签名和验证功能。在本文中,我们将介绍如何使用 litecore-tealco...

    3 年前
  • npm 包 eduterm-plugin-wakelock 使用教程

    简介 在移动端开发中,我们经常需要保持应用程序保持唤醒状态,以确保程序不被系统休眠。这个过程通常需要平台相关的代码,并且很复杂。为了解决这个问题,我们可以使用 eduterm-plugin-wakel...

    3 年前
  • 前端技术文章:npm 包 danbi-plugin-image-picker 使用教程

    如果你正在寻找一款简单易用的图片选择器,那么 danbi-plugin-image-picker npm 包是一个不错的选择。这个 npm 包提供了一个功能高效的图片选择器,支持多种图片格式。

    3 年前
  • npm 包 broccoli-hyde-compiler 使用教程

    从 GitHub Page 可以看到 broccoli-hyde-compiler 是一个 Broccoli 插件,专门用于编译 Hyde 格式的文件。Hyde 格式被广泛应用于静态网站生成器,如 J...

    3 年前
  • npm 包 go-agr-ribbon 使用教程

    简介 go-agr-ribbon 是一个基于 Angular 框架的 UI 组件库,可以用于构建优美的界面。该组件库提供了很多功能强大、规范化的组件,易于使用和维护。

    3 年前
  • npm 包 mammut 使用教程

    1. 简介 在前端开发的过程中,我们经常需要处理大量的数据。如果没有一个好的数据处理工具,那么我们很容易就会陷入无尽的重复劳动中。在这种情况下,mammut 这个 npm 包就可以帮助我们轻松地完成数...

    3 年前
  • npm 包 custom-gallery 使用教程

    前端开发中,常常需要使用图片集合,利用 npm 包 custom-gallery 可以方便的实现图片集合的功能。本文将详细介绍 custom-gallery 的使用教程,帮助读者快速、高效的使用该工具...

    3 年前
  • npm 包 gatsby-buildtime-timezone 使用教程

    在 web 开发行业中,前端工程师需要处理各种不同的时区,以确保时间的正确性。而 gatsby-buildtime-timezone 是一个非常方便的 npm 包,可以用于在 Gatsby 静态网站构...

    3 年前
  • npm 包 lightmatrix 使用教程

    lightmatrix 是一个 JavaScript 库,它可以生成二维矩阵并对该矩阵进行各种各样的操作。在前端开发中,我们经常需要处理各种矩阵数据,lightmatrix 就是一个非常好用的工具库。

    3 年前
  • npm 包 rename-expert 使用教程

    前言 在前端开发中,我们经常需要对文件名进行修改。这时,我们可以使用 npm 包 rename-expert 快速地实现文件名批量修改。本文将详细介绍 npm 包 rename-expert 的使用方...

    3 年前
  • npm 包 toetsapplicatie-plugins 使用教程

    前言 在前端开发中,我们经常需要使用各种 npm 包来帮助我们完成一些任务。toetsapplicatie-plugins 就是其中之一,它可以帮助我们在应用程序中使用 toetsapplicatie...

    3 年前
  • npm 包 binary-ws 使用教程

    在前端开发中,WebSocket 已经成为了一种非常普及的实现实时通信的方式。binary-ws 是一个专门用于处理二进制数据的 WebSocket 库,它可以帮助我们在前端轻松地处理二进制数据。

    3 年前
  • npm 包 pivot-reactjs 使用教程

    介绍 pivot-reactjs 是一个用于数据透视的 npm 包,它能够快速地帮助我们对大量数据进行处理和分析。这个包是基于 React.js 开发的,使得它非常容易集成到你的前端项目中。

    3 年前
  • npm 包 @jasonphillips/slate 使用教程

    一、简介 @jasonphillips/slate 是一个基于 Slate.js 的 React 编辑器组件库,提供了多种样式和功能的富文本编辑器。它可以帮助前端开发人员快速构建自己的富文本编辑器。

    3 年前
  • NPM 包 entwickeln 使用教程

    随着前端技术的不断发展,越来越多的前端工程师开始开发自己的库,这些库可以帮助我们有效地实现一些常见的需求,比如表单验证、时间处理等。不过如何将这些库打包成 NPM 包,并发布到 NPM 上呢? 在这篇...

    3 年前

相关推荐

    暂无文章