【问题标题】:how stackoverflow permalink works?stackoverflow 永久链接是如何工作的?
【发布时间】:2009-06-17 16:25:23
【问题描述】:

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

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

【问题讨论】:

    标签: google-app-engine friendly-url


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我认为是帖子的数量,而不仅仅是问题
      【解决方案3】:

      ID 号确实表明了帖子的总数。我相信我从播客中记得问题和答案都存储为“帖子”,但 cmets 也可能是帖子。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2017-10-09
          • 2013-03-21
          • 2012-12-21
          • 1970-01-01
          • 1970-01-01
          • 2021-04-29
          • 1970-01-01
          • 1970-01-01
          • 2011-07-27
          相关资源
          最近更新 更多