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" を除外
'^ * \((?:PNG | HTML)$?!)* $。。。 ' – rock321987