Ошибка при развертывании углового приложения к героку - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь развернуть угловое приложение "test-app" на heroku через github, и все работает просто отлично, но я не могу настроить функцию экспресс-маршрутизации. Я пробовал разные пути, но heroku просто поставил эту ошибку.

Ошибка: ENOENT: такого файла или каталога нет, stat '/app/test-app/index.html'

и ниже - мой файл "server.js"

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

app.use(express.static(__dirname + "/dist"));

app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "/dist/test-app/index.html"));
});

app.listen(process.env.PORT || 8080, () => {
console.log("Connected to the server");
});

Кажется, я что-то напутал в разделе "путь к соединению". Может кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 29 октября 2018

Вы строили свое угловое приложение с помощью ng build ?. Если да, то вы положили вывод сборки в папку dist?

Я бы предложил следующее: 1. Разделите ваш экспресс-сервер и ваше угловое приложение. 2. Создайте свое угловое приложение и скопируйте вывод (только файлы html и js, а не папку с именем проекта) в каталог в вашем экспресс-приложении (допустим, вы также назовете его dist). 3. В вашем экспресс-приложении вам нужно только это: app.use(express.static(__dirname + "/dist"));, а не

app.get("/*", function(req, res) {
res.sendFile(path.join(__dirname, "/dist/test-app/index.html"));
});. 

Вы можете заставить его работать только с частью 3, даже если вы поместите свое экспресс и угловое приложение в одно и то же рабочее пространство, но лучше разделить их в будущем, так как это два разных объекта, которые взаимодействуют друг с другом, но могут нуждаться много развития отдельно.

Редактировать: зарегистрируйте свое __dirname и посмотрите, что оно показывает. В большинстве случаев достаточно app.use(express.static("dist"));.

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