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

时间:2019-04-11 08:07:17

标签: javascript html node.js sails.js meta

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

我有一个Web应用程序,但是Google中的指示不符合我的要求。链接下的描述对用户理解该页面允许我们执行的操作没有用。

我阅读了zugbruecke实现的元描述标签,但它适用于帆版本<1.0,而且我不知道如何在版本1.0中进行复制。

我的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>

1 个答案:

答案 0 :(得分:1)

您所链接的问题并没有太远,以至于在不做一些调整的情况下就无法在Sails v1中使用。

<meta>标签将需要在HTML <head></head>标签之间,因此,假设您有layout.ejs或类似标签,我们将需要在其中添加一些内容。

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

这应该确保如果设置了metaDescription,那么它将被添加到HTML中,但是如果您没有为路由指定元描述,则应该避免任何未定义的错误。

您实际上可以通过几种方法来设置每个页面的描述。

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

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

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

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