如何将heroku托管指向子应用程序和index.html的子目录?

时间:2016-02-21 01:40:34

标签: javascript angularjs node.js heroku

我是使用heroku进行部署的新手。在我的heroku repo中,我有一个nodejs + angular app,我的extern void print_clear_all(void); extern void print_menu_title(const char *const pgm_string); extern void print_menu_item(const char *const pgm_string, const unsigned char is_focus); extern void print_clear_rest(); static const menu_t *current_menu = &main_menu; static unsigned char current_item = 0; void menu_refresh(void) { const unsigned char n = pgm_read_byte(&(current_menu->items)); const void *const *const itemarray = (const void *const *)pgm_read_word(&(current_menu->item)); unsigned char i; print_clear_all(); print_menu_title((const char *)pgm_read_word(&(current_menu->title))); for (i = 0U; i < n; i++) print_menu_item((const char *)pgm_read_word(itemarray + i), i == current_item); print_clear_rest(); } void menu_prev(void) { if (current_item > 0U) --current_item; menu_refresh(); } void menu_next(void) { if (current_item + 1U < pgm_read_byte(&(current_menu->items))) ++current_item; menu_refresh(); } void menu_enter(void) { const void *const *const itemarray = (const void *const *const)pgm_read_word(&(current_menu->item)); const menuitem_t *const item = (const menuitem_t *const)pgm_read_word(itemarray + current_item); void (*const action)() = (void (*)())pgm_read_word(&(item->action)); const menu_t *const submenu = (const menu_t *const)pgm_read_word(&(item->submenu)); if (action) action(); if (submenu) current_menu = submenu; menu_refresh(); } 和所有角度文件都在一个名为app.js

的子目录中

我使用grunt,我可以毫无问题地在本地运行我的网站,然后转到app/。当我推送到heroku时,它会通过我的localhost:8000/app并运行相应的脚本来构建项目。我也已经完成了

package.json

然而,当我尝试

heroku ps:scale web=1

页面上写着:

  

应用程序错误应用程序和页面中发生错误   无法提供服务。请稍后再试。

我相信这是因为heroku没有指向heroku open ,因此没有要呈现的页面。有没有解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的网络服务器配置文件(app.js / webserver.js或您命名的任何内容)是什么样的?

以下是使用Express的示例:

var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');

var app = express();

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

var path = require('path');
var rootPath = path.normalize(__dirname + '/');
app.use(express.static(rootPath + '/app'));



app.listen(port, function (err) {
  console.log('running server on port ' + port);
});

如果上面的配置正确,Heroku应该可以在您的app文件夹中找到index.html。