Heroku节点应用程序资源未加载

时间:2015-03-17 05:15:13

标签: node.js heroku express

我有一个在本地运行良好的Express Node应用程序,但是当我部署到/public下的Heroku文件时,找不到/bower_components

enter image description here

This post似乎有类似的问题,但解决方案对我不起作用。

以下是我的app.js的相关部分:

app.use(express.static(path.join(__dirname, 'public')));
app.use('/bower_components',  express.static(__dirname + '/bower_components'));

这是我的package.json文件:

{
  "name": "MyApp",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "postinstall": "bower install"
  },
  "dependencies": {
    "express": "~4.9.0",
    "body-parser": "~1.8.1",
    "cookie-parser": "~1.3.3",
    "consolidate": "~0.10.0",
    "morgan": "~1.3.0",
    "serve-favicon": "~2.1.3",
    "debug": "~2.0.0",
    "bower": "^1.3.12",
    "dustjs-helpers": "~1.4.0",
    "dustjs-linkedin": "~2.5.0",
    "node-compass": "0.2.3"
  },
  "engines": {
    "npm": "2.7.1"
  }
}

在浏览器控制台中,我可以验证所有文件是否存在

enter image description here

这让我相信Heroku正确阅读__dirname存在问题。

1 个答案:

答案 0 :(得分:0)

这个帖子解决了这个问题。 Node.js with express app crashes on Heroku, works locally

我必须在app.js

中的其他应用配置行上方移动以下行
app.use(express.static(path.join(__dirname, 'public')));
app.use('/bower_components',  express.static(__dirname + '/bower_components'));