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