Expressjs没有加载在heroku上的样式表,给出500错误 [英] Expressjs not loading stylesheets on heroku, giving 500 error

查看:175
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆