backbone とrestifyで PushState を使用するのが困難です。ほとんどのルートは正常に機能しますが、単一モデルの GET ルートで競合が発生します。XMLHttpRequest
私は、ヘッダーが設定されているものだけを restify が提供するようにすることで、この問題を回避しました。
サーバー.js
var app = restify.createServer();
app.use(restify.bodyParser());
// serve static files
app.get(/^\/public\/(.*)/, public.serveFile);
// Read and handle 'post' model
app.get('/posts/:id', function (req, resp, next) {
// process backbone requests
if (req.headers['x-requested-with'] === 'XMLHttpRequest') {
posts.single(req, resp, next);
} else {
index(req, resp, next);
}
});
// a catch all that gives backbone control
app.get(/.*/, index);
バックボーン ルーター
// pushstate is true
routes: {
'': 'home',
'posts/:id': 'show', // issues
'*other': 'default'
},
バックボーンですべてのリクエストを処理してから、基本的な操作を処理する別のルートを/posts/
作成することもできますが、可能であればパリティを保持したいと考えています。api
CRUD
私の現在のソリューションは機能しますが、不安定なようです。これを処理するより良い方法はありますか?