5

現在、Angularjs ベースの Web アプリケーションにファントムを統合しています。

この素晴らしい記事には$locationProvider.hashPrefix()、プレフィックスを '!' に設定するメソッドを呼び出す必要があると書かれています。SEO の理由から (クローラーが_escaped_fragmentURL のコンポーネントをインターセプトできるようにする)。

問題は、以前のことを考えていないことであり、私の URL の一部は次のようになっています #/home

この '!' を埋め込む方法があるかもしれません。手動で多くのマークアップを編集する代わりに、APP の構成機能でプログラムによって (まだ存在しない場合) URL の先頭に char を追加します。

4

2 に答える 2

4

同様の問題があり、手動で(検索/置換)すべてのリンクを調べて修正しました。

私が抱えていた他の問題は、外部サイトが 新しい形式 http://plinkplink.net/#!/event/3ではなく、古い形式、つまりhttp://plinkplink.net/#/event/3を使用していたことです。

そのために私が行った修正は、厳密に言えばangularjsの慣用句ではありませんが、仕事はします。このスクリプトをページのヘッダーに追加しました。# を含むページを #! を含むページにリダイレクトするだけです。

    <script>
        var loc = window.location.href
        if (loc.indexOf("#") != -1 &&  loc.indexOf("#!") == -1 ){
            window.location.href = loc.replace("#", "#!");
        }
    </script>

お役に立てば幸いです。

于 2014-01-06T22:57:31.643 に答える
0

#値にリンクしていますか?ie -<a href="#/my/page"> もしそうなら、そうすべきではありません。# プレフィックスなしで URL にリンクする必要があります。これで問題が解決すると思います。

于 2013-10-30T16:22:52.647 に答える