【问题标题】:heroku Error: ENOENT, stat '/app/build/index.html'heroku 错误:ENOENT,stat '/app/build/index.html'
【发布时间】:2016-07-28 01:44:30
【问题描述】:

我正在尝试部署到 heroku,但是当我转到我的地址时,我得到了Error: ENOENT, stat '/app/build/index.html'。否则应用程序部署不会给我任何错误。有人可以解释我做错了什么。这是我的代码和代码结构。

server.js

var express = require('express'),
    server = express(),
    bodyParser = require('body-parser'),
    logger = require('morgan'),
    methodOverride = require('method-override'); // for heroku

var port = process.env.PORT || 5000;

server.use(express.static(__dirname + '/build'));
server.use('/src', express.static(__dirname + '/build/src'));       // js
server.use('/assets', express.static(__dirname + '/build/assets')); // css, images
server.use('/vendor', express.static(__dirname + '/build/vendor')); // other

server.use(logger('dev'));

server.get('/', function(req, res, next) {
  res.sendfile('index.html', { root: __dirname + '/build' });
});

server.listen(port, function() {
  console.log("Listening on " + port);
});

应用结构

├── Gruntfile.js
├── LICENSE
├── Procfile
├── README.md
├── bower.json
├── build
│   └── ....
├── build.config.js
├── config
│   └── db.js
├── karma
│   └── karma-unit.tpl.js
├── module.prefix
├── module.suffix
├── node_modules
│   └── ...
├── package.json
├── server.js
├── src
│   ├── app
│   ├── assets
│   ├── common
│   ├── index.html
│   └── less
└── vendor

应用/构建中的结构

├── assets
│   ├── O-viu-0.0.1.css
│   └── README.md
├── index.html
├── karma-unit.js
├── src
│   └── app
│       ├── about
│       │   └── about.js
│       ├── app.js
│       └── home
│           └── home.js
├── templates-app.js
├── templates-common.js
└── vendor
    ├── angular
    │   └── angular.js
    ├── angular-bootstrap
    │   └── ui-bootstrap-tpls.min.js
    ├── angular-ui-router
    │   └── release
    │       └── angular-ui-router.js
    └── placeholders
        └── angular-placeholders-0.0.1-SNAPSHOT.min.js

【问题讨论】:

    标签: angularjs node.js heroku


    【解决方案1】:

    想通了。这是我的 .gitignore 文件,我在其中包含了 /build 文件夹。

    【讨论】:

    • 我已经为这个问题纠结了一天多,这一切都归结为只包括我的构建文件夹。谢谢!最终使用 Git 而不是 Heroku 的 git 系统,因此我能够更好地可视化添加或删除哪些文件。
    • 很高兴它有帮助!
    【解决方案2】:

    试试这样的:

    res.sendfile( __dirname + '/build/index.html' );
    

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 2021-09-22
      • 2017-01-24
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2021-04-26
      • 2021-04-04
      • 2019-08-22
      相关资源
      最近更新 更多