3

多くの Ruby on Rails アプリで、URL の末尾にスラッシュがないのはなぜですか? 一例はhttp://basecamphq.com/tourです。私の知る限り、これは Web 標準に反します。RoR の設定方法と関係がありますか?

4

7 に答える 7

12

Web 標準に反するものではありません。http://basecamphq.com/tourはファイルと見なされ、http ://basecamphq.com/tour/ はディレクトリと見なされます (注: 両方の URL は同じではありませんが、Apache などの一部の Web サーバーは、 1つは存在しません)。どちらも一種の仮想であるため、主に開発者が決定する必要があります (これは、使用されているプログラミング言語やフレームワークとは無関係です)。

キャッシュ制御に十分なHTTPヘッダーがあるため、キャッシングとは関係がないと思います(ニラモが言及)-ただし、一部のリバースプロキシはデフォルトの動作が異なる可能性があります。

于 2009-10-23T12:22:31.297 に答える
5

あなたの議論は無効です:

w3cのURL仕様は、URLに末尾のスラッシュを強制しません。

これはスラッシュについてそれが言うことです:

パスは、使用されているスキームに応じた方法で解釈されます。一般に、予約済みのスラッシュ「/」文字(ASCII 2F hex)は、階層構造のレベルを示します。スラッシュの左側の上位レベルの部分です。

Railsはこの指令に非常によく準拠しています。

私の髪は鳥です!

于 2009-10-23T13:01:18.110 に答える
2

末尾のスラッシュはディレクトリを表し、Rails のディレクトリではなくページにアクセスしているためです。あなたの例では tour.html に似ていますが、.html はデフォルトであるため無視できます。

于 2009-10-23T12:21:45.853 に答える
1

RoR では、入力する URL は通常、ディレクトリ内の静的ファイルにマップされず、routes.rb ファイルによって動的に解決されるため、パスの末尾にスラッシュを付けてもあまり意味がありません。検出。

于 2009-10-23T12:22:26.453 に答える
0

Rails はスラッシュをパラメータ トークン セパレータとして使用し、次のようなルートを使用します。

/post/:year/:page

何らかの魔法を使わない限り、デフォルトで/post/2012/a-title/post/2012/a-title/ の両方に一致します。これは Web 標準とは何の関係もありません

ブラウザーの観点から見ると、これら 2 つのパスは、相対的なリソースを扱う場合に大きく異なります。<img src=" image.png "/> を使用した上記への応答で、ブラウザは次のクエリをサーバーに送信します: /post/2012/image.png (最初のケース) または/post/2012/a- title/image.png (2 番目のケース)。これは、ブラウザーが末尾のスラッシュを使用して、パスがディレクトリであるかのように解決されるためです。

ただし、Rails 開発者は通常、コンテンツをレンダリングするときに URL を明示的に記述しないため、気にしません。彼らは、このロジックを彼らから隠す URL ヘルパーを自由に使用できます...ヘルパーを使用してコンテンツを生成しない限り、あなたは気にします。

于 2012-09-11T07:24:45.517 に答える
0

スラッシュが好きな人もいれば、嫌いな人もいます。双方にとって熱烈な議論をすることができます。

于 2009-10-23T12:31:39.180 に答える
-3

これは、URL書き換えの形式です。これはWeb標準に反するものではなく、実際には使いやすさのために多くのことを行い、検索エンジンのランキングに役立つことが証明されています。このように考えてください。

あなたは誰かのブログで見たこのクールな投稿について友達に話している。友達にわかりやすいURLはどれですか。

  1. http://www.coolwebsite.com/post.aspx?id=aebe6ca7-6c65-4b5c-bac8-9849faa0a467

また

  1. http://www.coolwebsite.com/cool-ideas-for-posts/
于 2009-10-23T13:07:04.303 に答える