我正在使用ms-seo package的Meteor应用。我想知道是否有办法让网址更加SEO友好?
Router.route('/item/:_id', {
name: 'item.detail',
controller: 'ItemsController',
action: 'detail',
where: 'client',
onAfterAction: function() {
var data = this.data();
if (data) {
SEO.set({
title: data.title + ' - ' + data.company + ' (' + data.city + ')',
meta: {
'description': data.descriptionHTML
}
});
}
});
虽然这很有效,但它生成的网址是/item/5RTxofPPn3LwifP24
,我想在网址中按data.title
,这样我就可以/item/i-am-a-lower-case-dash-replaced-unique-title/
有包裹吗?
答案 0 :(得分:5)
你需要创建一个slug。因此,您的收藏将包含以下字段:
然后你可以使用像https://atmospherejs.com/yasaricli/slugify之类的东西将你的标题转换为slug。基本上它的作用是转换名为" Unique Shopping Cart Item"到" unique-shopping-cart-item。"
然后在路由器中传递slug作为参数。
Router.route('/blog/:slug',{
name:'blogPosts',
waitOn: function() { return Meteor.subscribe('collection'); },
data: function(){
var slug = this.params.slug;
return Collection.findOne({slug:slug});
// this is saying search the collection's slug for the passed in parameter which we're also calling "slug"
}
});
答案 1 :(得分:0)
您可以尝试slugify推送data.title
作为一个漂亮的网址。