1

stackoverflow 如何管理永久链接。例如一个任意的 qn,如:ASP.NET + jQuery + 动态创建的超链接控件在这种情况下,如果同一用户发布另一个具有相同标题的 qn,会发生什么情况。我认为之前的数字 - /1002230/ 是关键,但它是在什么基础上创建的。它是否表明stackoverflow中有多少问题。

这个疑问与我有关,因为我试图在永久链接中使用博客文章的标题。但是,这将不允许具有相同标题的多篇博文。我也不想使用身份证号码。事实上,我正在为这个应用程序使用 appengine,所以生成的密钥类似于“ahVzYW5qaGFjaG9vbGhhLXNhbmRib3hyCwsSBUFjdG9uGFUM”,这肯定不是很好。所以关于如何美化我的网址的任何提示谢谢

4

4 回答 4

2

该数字是唯一的问题 ID - 它们只会增加而不是重复使用。当您通过 URL 检索页面时,服务器会忽略人类可读的字符串 - 这是为了方便和美观 - 以解决您的相同任务。因此,每个问题 URL 都有两部分 - 机器可读的(起始部分和问题 ID)和人类可读的 - 之后过滤的问题标题。

不包括已删除的问题,该数字是网站上的问题总数。已删除问题的数量不会重复使用,因此不会发生冲突。

于 2009-06-17T05:46:58.610 回答
2

与其使用 Key().str(),不如将 Key 的 id 或 key_name 与 Model.get_by_id() 或 Model.get_by_key_name() 一起使用会更好。这些都更加用户友好(分别为整数或提供的字符串)。

于 2009-06-17T06:05:41.997 回答
0

ID 号确实可以说明总共有多少帖子。我相信我从播客中记得问题和答案都存储为“帖子”,但评论也可能是帖子。

于 2009-06-17T05:49:22.757 回答
0

我最喜欢的方法是使用格式为“/1234/slug-goes-here”(如 StackOverflow)或“/1234-slug-goes-here”的 URL。稍微聪明点,您可以忽略 slug 的内容,仅根据 ID 获取,这意味着链接即使被邮件软件、IRC 等截断也可以工作。

App Engine 明智的另一种方法是使用键名 - 将 slug 设为键名,这意味着您可以使用 MyModel.get_by_key_name(slug) 查找它。博客就是这样做的。

于 2009-06-17T08:25:23.860 回答