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

问题描述 投票:0回答:1

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

我有一个网络应用程序,但在Google的指示不尊重我想要的。链接下的描述对于用户理解该页面允许我们执行的操作没有用。

我阅读了元描述标签的THIS实现,但是它适用于sails版本<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>
javascript html node.js sails.js meta
1个回答
2
投票

您已经链接的问题并没有太远,以至于没有一些调整就无法使用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: '...'
    }
  },
  // ...
}        

© www.soinside.com 2019 - 2024. All rights reserved.