,/profile
、さらに/
のルートが完全に動作します。これは、サーバーがデフォルトの.htmlファイルと角度ファイルを送信するためです以下のサーバーコードのため)、これらのアングルファイルは現在のURLを処理します。2つ以上の '/'を含むルートを再表示すると、角度が
/
(ルートパラメータを使用する場合に必要です)のルートでリフレッシュを押すと、問題が発生します。/manage/users
、/user/12345678
...などです。
そして、jQueryはこの奇妙なエラーUncaught SyntaxError: Unexpected token <
をスローし、ブートストラップはjQueryを取得できないと不平を言うようになり、ページは化粧なしで気になるように見えます。
私は複数の/
を持つルートを訪問したときにだけ($state.go('/manage/users')
、<ui-sref='profile'>
などを使用して)アンギュラ自身のルータを使用することによって、明確にするために、この問題は、(明らかに)発生していない場合、角度がすでにロードされているので、そのURLを処理する
しかし、ページを更新すると、そのルートを処理するAngularがないため、ブラウザはサーバーにルートを尋ね、明らかにExpressの/*
はこのルートも処理できません。すべてのAPIのルートを処理した後
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.render('index.html');
});
:
私はで私のサーバーからの.htmlファイルを提供しています。 index.html(うまくいけば)は後ですべての角度ファイルを読み込みます。app.all('**/*', function(req, res, next) { ... });
... /
の任意の数で、任意の経路でHTMLをレンダリングする:
のようなものはありますか?おそらく正規表現のいくつかの種類ですか?あなたの "頭" でベースを設定する必要が
TIA
あなたはhtml5Modeを使用していますか? – QoP
@QoP $ locationProvider.html5Mode(真)を使ってうん、 –
@QoP OK! $ locationProvider.html5Mode(false)を設定すると、問題が魔法のように解決されます。しかし、アプリケーションルートの前に '#!'(hashbang)を置いてください。私はFacebookの共有を実装しているので、それも削除する必要があります、そして、明らかに、それはhashbangsで動作しません –