Успешно развернуто приложение Angular с прокси-сервером в Heroku, но на веб-странице отображается сообщение «Ошибка не найдена» - PullRequest
0 голосов
/ 29 ноября 2018

Я развернул свое угловое приложение, как обычно, но на этот раз я получил ошибку Not Found.Когда я проверяю журналы Heroku, выдается следующее сообщение ...

 Error: ENOENT: no such file or directory, stat '/app/dist/my-app/index.html'

Мой файл server.js выглядит следующим образом ...

const express = require('express');
const app = express();
const path = require('path');

app.use(express.static(__dirname + '/dist/my-app'));
app.listen(process.env.PORT || 8080);

app.get('/*', (req, res) => {
   res.sendFile(path.join(__dirname + '/dist/my-app/index.html'));
});

console.log('Node-express server listening!');

Я переместил @angluar/cli и @angular/compiler-cli а также typescript из devDependencies и в объект зависимостей как обычно.Вот мой package.json ..

{
  "name": "my-app",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "node server.js --proxy-config proxy.conf.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "postinstall": "ng build --aot --prod"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.0.4",
    "@angular/cdk": "^7.0.4",
    "@angular/cli": "^7.0.6",
    "@angular/common": "^7.0.4",
    "@angular/compiler": "^7.0.4",
    "@angular/compiler-cli": "^7.0.4",
    "@angular/core": "^7.0.4",
    "@angular/flex-layout": "^7.0.0-beta.19",
    "@angular/forms": "^7.0.4",
    "@angular/http": "^7.0.4",
    "@angular/material": "^7.0.4",
    "@angular/platform-browser": "^7.0.4",
    "@angular/platform-browser-dynamic": "^7.0.4",
    "@angular/router": "^7.0.4",
    "core-js": "^2.5.7",
    "express": "^4.16.4",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "ngx-gallery": "^5.9.0",
    "rxjs": "^6.3.3",
    "rxjs-compat": "^6.3.3",
    "typescript": "^3.1.6",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.10.6",
    "@angular/language-service": "^7.0.4",
    "@types/jasmine": "~3.3.0",
    "@types/jasminewd2": "~2.0.6",
    "@types/node": "~10.12.9",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^3.1.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^2.0.4",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "^5.4.1",
    "ts-node": "~7.0.1",
    "tslint": "~5.11.0"
  },
  "engines": {
    "node": "10.10.0",
    "npm": "6.4.1"
  }
}

Единственное отличие на этот раз в объекте scripts, где вместо обычного "start": "node server.js" у меня есть "start": "node server.js --proxy-config proxy.conf.json"

ЛокальноПроект компилируется и запускается с «start»: "ng serve --proxy-config proxy.conf.json".

Я также проверил наличие недостающих файлов или папок по heroku run bash, а затем dir.Все вроде бы хорошо.

Я уже несколько раз создавал и разворачивал угловые приложения на heroku.Единственное отличие, которое я могу найти на этот раз, заключается в том, что я использую прокси для подключения к серверной части.Я делаю что-то неправильно?Любая помощь будет хорошей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...