网址命名约定

标签 url naming-conventions url-routing

所以,这可能是一堆蠕虫。但我很好奇你的做法是什么?

例如,假设您的网站包含以下需求(非常基本):

  1. 着陆页
  2. 事件的信息页面(静态)
  3. 该事件的地点列表(动态)
  4. 每个地方的信息页面

话虽如此,您将如何设计您的网址?

通常,我会执行如下操作:

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/

相关文章:

php - Stack Overflow URL 是如何工作的?

java - Java 包中的连字符公司名称

c++ - 是否有更多结构/类以获得更好的命名约定?

php - Laravel 中的路由与 Controller

javascript - 使用 crossroads.js 和 hasher.js 返回根页面

url - 我应该担心 SEO 的 RSS 网址吗?

pdf - 如何在 Puppeteer 中添加所有相对 URL 的绝对路径(本地 html 文件应从网络加载图像以生成 PDF)

ios - 检查一个 URL 是否有 http ://prefix

data-structures - 一组中 "find, remove and return an element"的术语?

c# - 路由名称与文件夹名称相同