3

ルートドメイン(「 http://example.com/」など)がCDNを指すように、サイトのコア(動的に生成する必要のないものすべて)をCDNでホストすることを検討しています。動的なものはすべて、代替のセカンドレベルドメイン(検索の場合は「 http://search.example.com/ 」など)を指すか、代替ドメインへのAJAX呼び出し( http://など)によって静的コンテンツの上に階層化されます。 ajax.example.com/)。

これは多くのサイトにとって非常に望ましいことのように思えますが、CDNホームページでも、サイト全体のキャッシュを行うことについての情報はあまりありません。私に発生する明らかな問題が少なくとも1つあります。それは、ユーザーがモバイルブラウザーから来ているかどうかを現在検出し、モバイルブラウザーから来ている場合はモバイルコンテンツを提供することです。問題は、私が知る限り、ほとんどのCDNではページのバージョンにしか保存できないため、通常のページをキャッシュすると、モバイルブラウザはモバイルバージョンではなくそれを認識します(明らかにその逆も同様です)。

モバイルコンテンツをm.example.comなどの別のドメインに移動することで、これをある程度回避できますが、モバイルブラウザーを検出し、そのドメインにリダイレクトするためにCDNが必要になります(これもホストします。 CDNですが、通常のコンテンツではなくモバイルコンテンツを指していることは明らかです)。

これは広くサポートされるべきだと思われますが、私はそれについて多くの情報を見つけることができません。誰かが似たようなことをしましたか?その場合、どのCDNを使用し、この問題にどのように対処しましたか?克服する必要のある他の重要なハードルはありましたか?

私が忘れたいくつかのことを追加するために編集しました:

また、javascriptを使用してモバイルサイトにリダイレクトすることも検討しましたが、明らかにjavascriptのない古い電話は寒さの中で除外され、おそらくモバイルバージョンを最も必要とするものです。

この質問への回答を考慮に入れる可能性のある制約の1つは、プライマリサイトのURLがSEOの目的に非常に固有である必要があることですが、モバイルバージョンのSEOについてはまったく気にしません。

4

2 に答える 2

1

CDN (EdgeCast) には、同じ受信 URL の複数のバージョン (デスクトップ、Iphone、Blackberry など) をキャッシュするルールがあります。CDN ルールは、オリジン サーバーへの要求にクエリ文字列を追加します。オリジン サーバーのカスタム コードは、受信したクエリ文字列に応じて適切なバージョンをレンダリングします。例えば:

Desktop:    CDN requests /?nomobile  origin server returns Desktop rendering
Iphone:     CDN requests /?iphone    origin server returns Iphone rendering
Blackberry: CDN requests /?mobile    origin server returns Mobile rendering

CDN に関する限り、3 つの異なる URL があるため、3 つの異なるページがキャッシュされます。クエリ文字列は、エンド ユーザーに対して完全に透過的です。メディア クエリでレスポンシブ デザインを使用している場合でも、サーバー レベルで HTML を柔軟に変更できるという点で、このアプローチは非常に価値があります。

于 2011-11-09T16:54:38.530 に答える
0

ページのレンダリングがさまざまなデバイス (携帯電話など) で異なる場合、それは静的コンテンツではないため、CDN に含めるべきではありません。

実際の静的ファイルのみを CDN に配置し、ページの別のキャッシュ戦略を検討してください。

とにかく、JavaScript を介してクライアントのブラウザーを検出する代わりに、サーバー側でこれを行うこともできます。実際には、JavaScript の代わりにそれをお勧めします。次に、リダイレクトのアプローチを実現できます。

それが役立つことを願っています。

于 2011-01-26T22:57:22.330 に答える