让我们假设一个有评论的博客,并且用户查看了一篇有很多评论的博文。博客文章的一个不错的 URL 可能如下所示:
http://www.example.com/blog/174/how_to_slug_urls
174 是博客文章的数据库 ID。由于一页上显示的评论太多,评论会被拆分成几页。
是否有一些通用的方法来传递评论页面参数?我是将它附加在 slug 之前,还是在 slug 之后,按 POST 发送,还是有其他一些完整的方式?
我能想到的例子:
http://www.example.com/blog/174/how_to_slug_urls/commentpage/4
http://www.example.com/blog/174/how_to_slug_urls?commentpage=4
http://www.example.com/blog/174/how_to_slug_urls#commentpage=4 // maybe parsing with JS?
http://www.example.com/blog/commentpage/4/174/how_to_slug_urls
编辑: 附加问题:如何处理未连接到当前数据的参数?例如refreshIntervall=30s
最佳答案
在我看来,在这种情况下有两种可行的选择。
选项 1:仅使用查询字符串。(即 http://www.example.com/blog/article/174/how_to_slug_urls?commentpage=4
)
请注意,我添加了 article/
。这不是必需的,但我觉得以更易读的方式呈现 URI。
当您觉得评论是同一资源(博客文章)的一部分但需要单独的 URI 仅用于分页时,我建议使用查询字符串。
选项 2:使用完全不同的 URI。(即 http://www.example.com/blog/comments/174/how_to_slug_urls?page=4
)
请注意,我仍然使用查询字符串来区分页面。
视觉上不同的 URI 清楚地表明评论是一个单独的资源。这可能不是您对评论的看法,但这是我对它们的看法。
比较:
http://www.example.com/blog/article/174/how_to_slug_urls?commentpage=4
http://www.example.com/blog/comments/174/how_to_slug_urls?page=4
处理其他参数:只需使用查询字符串。
我们似乎痴迷于不在我们的 URI 中使用 ?
。有人会说他们不漂亮;我会反驳说外表并不是一切。如果你真的想避免它,下面的 URI 是 . . .可以接受,我猜:
http://www.example.com/blog/article/174/how_to_slug_urls/4
http://www.example.com/blog/comments/174/how_to_slug_urls/4
关于http - 在 'slug-url' 中传递附加参数的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927056/