如何通过 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?的主要内容,如果未能解决你的问题,请参考以下文章
通过JS拦截 pushState 和 replaceState 事件