我正在关注 Heroku 的在 Heroku 上托管应用程序的文档,并且我已经在 Heroku 上成功托管了我的 nodejs API,但是我无法托管我的 angularJs 代码,因为它在我的项目中没有 Server.js 文件。
2 回答
2
你应该有“server.js”和“Procfile”文件。
https://devcenter.heroku.com/articles/procfile
将它们推送到heroku:
-角项目文件夹
-Procfile
web: node server.js
-server.js
'use strict'
var express = require('express');
// App
var app = express();
app.set('port', (process.env.PORT || 5000));
// your angular-project folder
app.use('/', express.static(__dirname + '/angular-project'));
app.listen(app.get('port'), function() {
console.log("running: port", app.get('port'));
});
于 2018-08-01T14:14:48.900 回答
1
最好的选择是通过 CDN 或 NgInx 提供 Angular 服务。
如果你想用 nodeJS 提供它,只需添加一个 server.js(或 index.js)文件,代码如下:
var express = require('express'),
feapp = express(),
path = require('path'),
bodyParser = require('body-parser'),
fs = require('fs'),
compression = require('compression');
//Setup
feapp.use(compression({ threshold: 0 }));
feapp.use(express.static(path.join(__dirname, '..' ,'/public') , { maxAge: 3600 } )); //Use Cache-Control for performance
feapp.use(bodyParser.json());////For parsing application/json
feapp.use(bodyParser.urlencoded({extended: true}));
feapp.use(express.static(__dirname));
//HTTP server
http = require('http'); //Or https - but you will have add SSL certificats
var FE_HTTP_PORT = 80;
var feServer = http.createServer(feapp);
feServer.listen(FE_HTTP_PORT, function() {
console.log('Listening on port ', FE_HTTP_PORT);
});
// Simple Routing
feapp.get('*', function(req, res){
res.sendFile(path.join(__dirname, '..' ,'/public', 'index_site.html'));
});
module.exports = feapp;
于 2018-08-01T10:34:13.500 回答