express.jsから、私はflatironに小さなプロジェクトを試してみたいと思います。しかし、私は実際にどこかに行っていくのを妨げるいくつかの小さな問題があります。flatiron.jsルーティングとテンプレート、ユニオン、ディレクター、プレートを使用していますか?
var flatiron = require('flatiron')
, session = require('connect').session
, ecstatic = require('ecstatic')
, path = require('path')
, fs = require('fs')
, plates = require('plates')
, director = require('director')
, winston = require('winston')
, union = require('union');
var router = new director.http.Router();
var server = union.createServer({
before: [
ecstatic(__dirname + '/public')
]
});
router.get('/', function() {
var self = this;
fs.readFile('public/layout.html', 'utf-8', function(err, html) {
[...]
})
});
server.listen(3000, function() {
console.log('Application is now started on port 3000');
});
ディレクターとのルーティングはどのように機能しますか? ecstaticを外に出すと、 '/'のようなルートを定義することができますが、動作しますが、静的なCSSとJSのコンテンツは取得されません。 ecstatic /は 'index.html'に置き換えられ、すべての定義されたルートよりも歓喜が優先されます。 - connect-staticと同じ動作です。ルート(/)はindex.htmlに置き換えられます。
Iはまた、動作しない接続ミドルウェアを使用して別のアプローチを試みた:
var flatiron = require('flatiron')
, connect = require('connect')
, path = require('path')
, fs = require('fs')
, plates = require('plates')
, app = flatiron.app;
app.use(flatiron.plugins.http);
app.use(connect.favicon());
app.use(connect.static(__dirname + '/public'));
app.use(connect.directory(__dirname + '/public'));
app.use(connect.cookieParser('my secret here'));
app.use(connect.session({'secret': 'keyboard cat'}));
app.router.get('/', function() {
console.log("GET /");
var self = this;
fs.readFile('public/layout.html', 'utf-8', function(err, html) {
[...]
})
});
app.listen(3000, function() {
console.log('Application is now started on port 3000');
});
感謝これを理解するために。これは非常に奇妙で、文書化されていません! –
投稿していただきありがとうございます。私はconnect.static()の部分を見逃しました。 – Zacho