Facebookのように、またはDynamic Documentタイトルで共有します
-
29-09-2019 - |
質問
私はネット上でこの問題を見つけましたが、まだ答えがないので、ここで誰かがそれを解決しました...? jquery.addressに大きく依存しているページを作成しました。 1つのインデックスページがあり、残りはGoogleの後にAjaxを介して動的にロードされます /#!/
クロール可能なページのスキーム。これで、FacebookのようにFacebookを追加したり、ボタンを共有したりしたいのですが、実際のページのタイトルやURLをつかむことができません。
私が何をするにしても、それは常にインデックスページのタイトルとURLに戻ります。試した:
- (明らかに)タイトルを変更する新しい部品のロード上のオープングラフメタ。
- クローラーページ(リンク」(
?_escaped_fragmet_=xyx
)しかし、指定します#!
メタのページ - 特定のタイトルとURLで「共有」。
インデックスページへのリンクや、タイトルとサムネイルが無視された右のURLへの空白の「共有」以外は何も得られません。
誰かが同様のセットアップを機能させましたか?
ヒントをありがとう、トーマス
解決
Facebookは実際に使用しています #!
今、それは機能します!サイトを構築する場合 http://site.de/?_escaped_fragment=something と同じです http://site.de/# !/something あなたがしなければならないのは「共有」することだけです #!
URLとそれは、Escaped Fragmentページから情報を表示します。
このURLを使用して確認してください。 http://developers.facebook.com/tools/debug
しかし:問題に対するよりクリーンな解決策は、ここにあります: http://github.com/browserstate/history.js/wiki/intelligent-stateハンドリング
他のヒント
私の推測では、FacebookのCrawlerがJavaScriptを実行せず、実際にサーバーから取得したページにあるものは常に表示されます。
Facebookの共有には残忍なキャッシュがあります。前回チェックしたときは、削られたらタイトル /説明データを変更することが不可能でした:(
私が抱えていた問題はOG:URLとページの実際のURLが一致しませんでした。また、OGデータがタイトル要素のすぐ後にあることについて多くのコメントを読みましたが、それが何も解決したとは思いません。
キャッシュの問題に関しては、Facebookのキャッシュが「残酷」であることは事実ですが、糸くずのツールについては何もキャッシュしません。 http://developers.facebook.com/tools/debug.
リンクを共有するときに、ノーハッシュバングURLを使用します。ハードリンクを処理し、JavaScriptを使用してハッシュバンクライアント側にリダイレクトします。そうすれば、クローラーがハードリンクされたページに移動した場合、JavaScriptが有効になった場合と同じように情報が表示されます。
比較:
と
お役に立てれば。