クライアントサイドのJavaScriptアプリと検索エンジンのボットクロールアプローチについてかなりの部分を読みました。私は2つの一般的なアプローチを見つけました:
ワークフロー1:
前提条件: Webアプリ全体が正常に機能しなくなり、JavaScriptなしで使用できるようになります。したがって、検索エンジンボットがクロールすることは明らかです。
- ユーザーはグーグル検索から特定のトピックに来ます
- トピックはプレーンHTMLで可能な限り高速にロードされます
- JSAppFrameworkがバックグラウンドで読み込まれます
- 準備が整うとすぐに、JSAppFrameworkがすべてのアクションやルートなどを引き継ぎます。
ワークフロー2:
前提条件: サーバーバックエンドは、Googleのajaxクロールガイド(https://developers.google.com/webmasters/ajax-crawling)に従って設計され、escaped_fragment urls(例:www.example.com/ajax.html?_escaped_fragment_=key)に戻ります。 = value)プレーンhtml。私が理解している限り、http://phantomjs.org/のようなものを使用して、フロントエンドコードの重複がないことを確認できます。
- Googleは結果にajaxURLを表示します
- リクエストはajaxURL#を使用して行われます!
- emberjsアプリケーションが初期化され、URLに応じて目的の状態がロードされます。
質問:
検索エンジンボットとフロントエンドjs-frameworkの良さのためにサーバー側のレンダリングを提供するには、クロール可能なemberjsアプリケーションスタックはどのように見えるべきですか?これを達成するためにemberjsコア開発者が推奨するものは何ですか?(例:Node + Emberjs + phantomjs +-x OR Rails + Emberjs + y OR Playframework + Z)?
そこにたどり着く方法はたくさんあるかもしれませんが、stackoverflowを使用して一般的なアプローチを除外するのは良いことだと思います。
サイドノート:
このようなフルスタックをすぐに作成したいJSフレームワークについてはすでに見てきました。ここでこれらに名前を付けるには:
- http://derbyjs.com/(良いアプローチですが、それでもアルファ版です)
- http://batmanjs.org/(本番環境の準備ができているかどうかは不明(特にバックエンド))
- http://www.firebase.com/(多少異なりますが、セキュリティが適切であれば興味深いものです)
- http://meteor.com/(プレビュー状態も)
- http://developer.yahoo.com/cocktails/mojito/
私は特にemberjsについて質問します。なぜなら、彼らのアプローチが好きで、その背後にあるチームは間違いなく最高のフレームワークの1つを構築できると思うからです。