所以,这可能是一堆蠕虫。但我很好奇你的做法是什么?
例如,假设您的网站包含以下需求(非常基本):
- 着陆页
- 事件的信息页面(静态)
- 该事件的地点列表(动态)
- 每个地方的信息页面
话虽如此,您将如何设计您的网址?
通常,我会执行如下操作:
www.domain.com/- 着陆页 [也可通过 www.domain.com/home 访问] www.domain.com/event - 事件信息页面 www.domain.com/places - 所有地方的列表 www.domain.com/places/{id} - 地点信息页面
现在,这是一个问题。就语法而言,我对将 url 中的给定位置引用为复数形式感到困惑。这样做不是更有意义吗:
www.domain.com/place/{id} 而不是 www.domain.com/places/{id}
在某些框架中,您有一个默认要遵循的约定(例如,ASP.NET MVC)。是的,您可以定义自定义路由以将/place/{id} 路由到 PlacesController。但是,我只是想在讨论中保持抽象。
话虽如此,让我们看看在您网站的另一个页面上的例子,您有一个链接,单击该链接会打开一个包含地点信息的模式弹出窗口。您将这些信息放在哪里?
我们可以这样处理:
www.domain.com/ajax/places/{id} 或者 www.domain.com/places/{id} 并根据请求头进行服务(即,如果请求 JSON,则返回 JSON?}。
最后,出于 SEO 的原因,我通常使用与给定资源关联的 slug。所以,像这样的东西:
www.domain.com/ajax/places/{id}/london
出于 SEO 的原因,london 只是为了给链接添加装饰。这是声音吗?
我会问所有这些问题,因为这些是我已经使用了一段时间的做法,我只是想看看其他开发人员在做什么,或者我是否处理不当。
谢谢!
最佳答案
我喜欢在页面顶部使用面包屑的 URL,因此向左移动时每个级别都应该更通用。
我反对 SEO slugs,因为它们具有误导性、令人恼火且不必要。
用户应该知道他们何时拥有持久 URL 以及何时拥有动态结果。这 '?'很好地说明了这一点。这就是说,听起来虽然你的地名是动态的,但返回的数据仍然存在持久性,对吧?如果用户将 URL 修剪为 www.domain.com/place/就好了,他们会以引导方式很好地浏览地点。
我将其称为位置,因为当您登陆页面时,它是一个特定的位置,除此之外大多数用户都不会注意到。我记得听过“简洁是智慧的灵魂”,所以我认为 Polonious 会同意把领带去掉“s”。
关于网址命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016383/