2016-05-27 11 views
0

AngularJsが私のルートのほとんどを処理したいので、ExpressとAngularで同時にルートを指定する必要はありません。 、ルートが存在しない場合Expressルートからファイル拡張子を持つルートを除外します

app.use('/api', api); // server-side stuff 
app.use(express.static(__dirname + '/public')); //static files 
app.get('*', function (req, res) { //angular stuff 
    res.render('index'); 
}); 

その後、私の角のアプリ上で、私はそれをこのよう

$routeProvider.otherwise({ 
    templateUrl: '/partials/404.html', 
    controller: 'DummyCtrl' 
}); 

を扱う問題があることです。だから私はこのようなルート「すべてをキャッチ」を作成しました​​3210ルートがパブリックディレクトリ内のファイルと一致しない場合は、次の「すべてをキャッチ」ルートに移動します。

これはサーバーがres.render('index');(ページ全体)を返すときにいくつかの問題を引き起こします。このページ全体がAngularJsによってページに挿入されるため、警告が表示されますWARNING: Tried to load angular more than once.

「キャッチオール」ルートは、ファイルと一致しないルートにのみ再書き込みしたいと考えています。

私が必要とするのは、ファイルのように見えるルートを除外するAngularルートの正規表現です。例えば:など、 ".htmlを、" "の.png" を除外

+0

'^ * \((?:PNG | HTML)$?!)* $。。。 ' – rock321987

答えて

1

ここソリューションです:/\/[^.]*$|^(?:https?:)?\/\/[^\/]+$/

+0

少なくとも質問を読む – rock321987

+0

私はした。何か間違って見ることはできません。 –

+1

「http」を探しているところはどこですか? – rock321987

関連する問題