0

現在表示されているレコードの ID を URL に表示せずに、Web サイトに URL スラッグ機能を実装する方法を知りたいです。

たとえば、StackOverflow URL は次のようになります: MVC Dynamic Views From Url Slug。URL にレコードの ID が含まれていることに注意してください。このページをブックマークしていて、なんらかの理由でレコードの ID が変更された場合、今後このレコードを見ることができなくなります。

レコードの ID に依存しない URL スラッグ機能を実装したいので、 https://stackoverflow.com/questions/mvc-dynamic-views-from-url-slugのようになります。

これを達成するための手順を教えてください。レコードのタイトルを使用してスラッグ化し、そのスラッグを保存して、二度と変更しませんか?

私が探しているもののサンプル URL は、http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jqueryです。 -plugins.aspx (URL に ID がないことに注意)

ありがとう!

4

3 に答える 3

5

それは基本的にあなたがすることです。それぞれの方法には利点があります。

  • Stack Overflow では、質問のタイトルを変更できるため、ID を使用して質問に永続的にリンクし、タイトルが正しくない URL は単にリダイレクトされます。
  • スラッグを永続的な識別子として使用するということは、スラッグが決して変更されないことを意味します。タイトルを変更することは可能ですが、混乱を招く可能性があるため、スラッグをリダイレクトした方がよい場合があります。また、スラッグはグローバルに一意である必要があるか、年/月/日などごとに一意性を強制する方法を見つける必要があります。

slug ルックアップを効率的にするには、データベース インデックスが必要です。幸いなことに、Django のSlug フィールドはデータベース インデックスを自動的に作成します。

おそらく、データベースの残りの部分を単純にするために、数値の主キーを使用したいと思うでしょう。

于 2010-10-06T00:57:12.477 に答える
1

URL 書き換えをお探しですか?

于 2010-10-06T00:21:04.983 に答える
1

結局のところ、各リソースを識別する独自の方法が必要になります。ほとんどの場合、これは整数であり、データベースにやさしく、GUID よりも人にやさしいためです。代わりに任意の文字列を使用する場合は、整数 ID の場合と同じ一般的な手法ですが、同じスラッグを共有する 2 つ以上のレコードにならないように注意する必要があります。

于 2010-10-06T00:40:33.397 に答える