如何通过 pushState 在 Backbone 中使用 SEO 友好的 URL?

Posted

技术标签:

【中文标题】如何通过 pushState 在 Backbone 中使用 SEO 友好的 URL?【英文标题】:How to use SEO friendly URLs in Backbone with pushState? 【发布时间】:2017-05-01 15:01:35 【问题描述】:

我有一个使用 Backbone.js 和 Marionette 的单页应用程序,目前使用片段 url 语法。

我正在修改应用程序以用于 SEO 以利用 pushState。虽然这将实现我的部分目标(消除对哈希爆炸的需要),但我希望添加到应用程序中的另一件事是更友好的网址。

例如,当您点击12345 是产品 ID 的网址时,我的应用会显示产品:

http://<myserver>/product/12345

我想知道是否有一种方法可以让我的应用了解此产品的更友好的 url,例如:

http://<myserver>/product/the-name-of-my-product

在内部,它的作用与点击包含产品 ID 的 URL 相同。

有没有一种很好的方法可以在这样的主干应用程序中完成对 seo 友好的 url?

【问题讨论】:

【参考方案1】:

既然您说要在 url 中使用产品名称,我假设它们将是唯一的(否则 url 无法正确解析)。

在这种情况下,您应该能够使用 Backbone 模型的 idAttribute 选项来指示 Backbone 将产品名称视为产品 ID。一旦你这样做了,它应该使用名称创建 url。

另一个选项是使用url 选项并提供一个函数来返回你想要的url(返回类似root/ + model.name

【讨论】:

以上是关于如何通过 pushState 在 Backbone 中使用 SEO 友好的 URL?的主要内容,如果未能解决你的问题,请参考以下文章

backbone.js实战之导航控制器学习笔记

链接中的锚点

Backbone.js 路由而不更改 url

通过JS拦截 pushState 和 replaceState 事件

如何在前端使用 SPA 设置 Sails.js 路由以支持 pushstate

如何在backbone.js中安全地发送/接收数据