2016-12-15 65 views
1

我有一个使用Backbone.js和Marionette的单页应用程序,它目前使用片段url语法。如何使用pushState在Backbone中使用SEO友好的URL?

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

例如,我的应用程序将显示一个产品,当你打一个网址,12345是一个产品的ID:我想知道是否有一种方式,我的应用程序可以知道

http://<myserver>/product/12345 

这个产品的更友好的网址,如:

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

而且在内部,它将执行与包含产品ID的URL相同的内容。

有没有一种很好的方式来完成这样的骨干应用程序中的友好的网址?

回答

2

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

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

另一种选择是使用url选项,并提供了返回你想要的URL功能(返回类似root/ + model.name