2009-06-17 197 views
1

stackoverflow如何管理永久鏈接。例如一個arbitary QN,如:ASP.NET + jQuery + Dynamically Created HyperLink controls在這種情況下,如果同一用戶的帖子標題相同的另一QN會發生什麼。我認爲之前的數字 -/1002230 /是關鍵,但是它是以什麼爲基礎創造的。它是一個指標,顯示了在堆棧中有多少個問題。固定鏈接的固定鏈接是如何工作的?

這無疑是與我有關,因爲我試圖用一個博客帖子的標題中永久鏈路它。但是,這不會允許多個博客帖子具有相同的標題。我也不想使用身份證號碼。我INFACT使用AppEngine上爲這個應用程序,因此生成的密鑰是一樣的東西「ahVzYW5qaGFjaG9vbGhhLXNhbmRib3hyCwsSBUFjdG9uGFUM」這肯定不是很好。所以關於如何美化我的網址的任何提示 謝謝

回答

2

而不是使用密鑰()。STR(),它可能是更好的使用密鑰ID或KEY_NAME與Model.get_by_id()或Model.get_by_key_name()。這些都更加用戶友好(分別爲整數或提供的字符串)。

2

該數字是唯一的問題ID - 他們只增量和不重複使用。當您通過URL檢索頁面時,服務器會忽略可讀的字符串 - 這是爲了方便和美觀 - 解決您的相同任務。所以每個問題URL都有兩個部分 - 機器可讀(起始部分和問題ID)和人類可讀的 - 之後的過濾問題標題。

隨着刪除問題排除的號碼是在網站上的問題總數。被刪除的問題的編號不會被重複使用,因此不可能發生衝突。

+0

我認爲這是*帖子的數量*,而不僅僅是問題 – hasen 2009-06-17 06:10:40

0

ID號確實給多少總員額有一些指示。我相信我從播客記得,問題和答案都存儲爲「帖子」,但評論也可以是帖子。

0

我最喜歡的方法是使用格式爲「/ 1234/slug-goes-here」(如StackOverflow)或「/ 1234-slug-goes-here」的URL。有一點聰明,你可以忽略slug的內容,並且僅僅基於ID獲取,這意味着即使鏈接被郵件軟件,IRC等截斷也可以工作。

另一種方法App Engine明智的做法是使用鍵名稱 - 將slug作爲鍵名,這意味着您可以使用MyModel.get_by_key_name(slug)查看它。這是如何Bloog做到這一點。