Expressjs没有加载在heroku上的样式表,给出500错误 [英] Expressjs not loading stylesheets on heroku, giving 500 error
本文介绍了Expressjs没有加载在heroku上的样式表,给出500错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我点击ctrl + u然后点击样式表链接,并获得这个错误:
TypeError:Object#< SendStream>没有方法'on'
在Object.static [as handle](/app/node_modules/express/node_modules/connect/lib/middleware/static.js:75:8)
at next(/ app / node_modules / express / node_modules / connect / lib / proto.js:190:15)
我去url'/stylesheets/style.css'我收到这个错误:
Express
500 TypeError:对象#< SendStream>没有方法'on'
在Object.static [as handle](/app/node_modules/express/node_modules/connect/lib/middleware/static.js:75:8)
在下一个(/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at /app/node_modules/stylus/lib/middleware.js:174:46
at /app/node_modules/stylus/lib/middleware.js:208:20
一切都在本地运行正常。
这里是package.json
{
name:app-name,
version:0.0.1,
private:true,
scripts:{
start :node app
},
dependencies:{
express:3.0.0rc1,
jade:*,
stylus:*
}
}
app.js :
/ **
*模块依赖关系。
* /
var express = require('express')
,routes = require('./ routes')
,http = require('http')
,path = require('path');
var app = express();
app.configure(function(){
app.set('port',process.env.PORT || 3000);
app.set('views' __dirname +'/ views');
app.set('view engine','jade');
app.use(express.favicon());
app.use(express .logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router );
app.use(require('stylus')。middleware(__ dirname +'/ public'));
app.use(express.static(path.join(__ dirname,'public') ));
});
app.configure('development',function(){
app.use(express.errorHandler());
});
app.get('/',routes.index);
app.get('/ about',routes.about);
http.createServer(app).listen(app.get('port'),function(){
console.log(Express server listening on port+ app.get 'port'));
});
Procfile:
web:node app.js
如果我保持清醒,它会崩溃应用程序
解决方案
我可以通过在package.json中指定引擎依赖来解决这个问题。
{
name:app-name,
version:0.0.1,
私人:true,
scripts:{
start:node app
},
dependencies:{
express $$$$$$$$
:0.8.4,
npm:1.1.41
}
}
I'm running an Expressjs installation on heroku, and it's not loading the stylesheets.
I hit ctrl+u and then click on the stylesheet link, and get this error:
TypeError: Object #<SendStream> has no method 'on'
at Object.static [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/static.js:75:8)
at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
When I go to the url '/stylesheets/style.css' I get this error:
Express
500 TypeError: Object #<SendStream> has no method 'on'
at Object.static [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/static.js:75:8)
at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at /app/node_modules/stylus/lib/middleware.js:174:46
at /app/node_modules/stylus/lib/middleware.js:208:20
Everything works fine locally.
here is the package.json
{
"name": "app-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.0.0rc1",
"jade": "*",
"stylus": "*"
}
}
The app.js:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/about', routes.about);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
The Procfile:
web: node app.js
If I keep refreshing, it crashes the app.
解决方案
I was able to solve this by specifying the engine dependencies in the package.json
{
"name": "app-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.0.0rc1",
"jade": "*",
"stylus": "*"
},
"engines": {
"node": "0.8.4",
"npm": "1.1.41"
}
}
这篇关于Expressjs没有加载在heroku上的样式表,给出500错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文