stackoverflow永久链接如何工作?

时间:2009-06-17 05:43:45

标签: google-app-engine friendly-url

stackoverflow如何管理永久链接。例如,像ASP.NET + jQuery + Dynamically Created HyperLink controls这样的任意qn。在这种情况下,如果同一用户发布具有相同标题的另一个qn会发生什么。我认为 - / 1002230 /之前的数字是关键,但基于什么基础创建。它是stackoverflow中有多少问题的指标。

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

ID号确实可以显示有多少帖子总数。我相信我从播客中回忆起问题和答案都存储为“帖子”,但评论也可能是帖子。

答案 3 :(得分:0)

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

App Engine的另一种方法是使用密钥名称 - 使slug成为密钥名称,这意味着您可以使用MyModel.get_by_key_name(slug)查找密钥。 Bloog就是这样做的。