Đến từ express.js, tôi muốn cung cấp cho flatiron một thử cho một dự án nhỏ. Tuy nhiên, có một số vấn đề nhỏ khiến tôi không thực sự đi đâu đó.flatiron.js định tuyến và templating với công đoàn, giám đốc và tấm?
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');
});
Định tuyến với giám đốc hoạt động như thế nào? Khi tôi rời khỏi ecstatic, tôi có thể xác định các tuyến đường như '/' và nó hoạt động, nhưng sau đó tôi không nhận được nội dung CSS và JS tĩnh. Với ngây ngất/được thay thế bằng 'index.html' và ngây ngất có ưu tiên trên tất cả các tuyến đường được xác định. - Đó là hành vi tương tự với kết nối tĩnh. Route (/) được thay thế bằng index.html.
Tôi cũng đã cố gắng một cách tiếp cận khác nhau bằng cách sử dụng kết nối trung gian, mà không làm việc:
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');
});
Cảm ơn để tìm ra điều này. Điều này thật kỳ lạ và kém tài liệu! –
Cảm ơn bạn đã đăng bài, tôi đã bỏ lỡ phần connect.static(). – Zacho