如何在 Sails JS 1.0 中设置元描述

How to set meta description in Sails JS 1.0

如何在 Sails JS 版本 1.0 应用程序中设置元描述标签以进行 SEO 优化?

我有一个网络应用程序,但 Google 中的指示不符合我的要求。链接下的描述对于用户了解该页面允许我们做什么没有用。

我阅读了 元描述标签的实现,但它适用于 sails 版本 < 1.0,我不知道如何在版本 1.0.[=24 中复制它=]

我的routes.js文件是这样的:

module.exports.routes = {

  // WEB PAGES
  'GET /':                                        { action: 'auth/view-homepage-or-redirect' },
  'GET /login':                                   { action: 'auth/view-login' },
  'GET /register':                                { action: 'auth/view-register' },
  ...
  ...
  ...

如您所见,我正在使用 sails 操作和标准 ejs html 模板。所以我有一个 layout.ejs 文件,其中包含所有其他页面 (.ejs) 作为正文。

这是我的 login.ejs 文件:

<div id="login" v-cloak>
  <div class="container">
    <h1 class="text-center"><%= __('Sign in to your account') %></h1>
    <div class="login-form-container">
      <hr/>
      <form id="login-form">
        <-- LOGIN FORM implementation !-->
      </form>
      <div class="text-center"><small><a href="/register"><%= __('Don\'t have an account?') %></a></small></div>
    </div>
  </div>
</div>

您所链接的问题并不太远,如果不进行一些调整,它将无法与 Sails v1 一起使用。

<meta> 标签需要位于 HTML <head></head> 标签之间,因此假设您有 layout.ejs 或类似标签,我们将需要在那里添加一些东西。

<title>...</title>
<% if (typeof metaDescription !== 'undefined') { %>
  <meta name="description" content="<%= metaDescription %>">
<% } %>

这应该确保如果 metaDescription 被设置然后它会被添加到 HTML,但是如果你没有为路由指定元描述应该避免任何未定义的错误.

您可以通过多种方式实际设置每个页面的描述。

在 actions2 控制器中,您可以执行如下操作。如果您需要动态生成(部分)描述,这可能很有用。

return res.success({
  metaDescription: '...',
  otherViewVar: '...',
  // ...
})

您也可以在 config/routes.js 文件中设置值

module.exports.routes = {
  'GET /': { 
    action: 'auth/view-homepage-or-redirect',
    locals: {
      metaDescription: '...'
    }
  },
  // ...
}