Я уверен, что это было решено, но я не могу заставить это работать на меня.
локально мое репо работает с этим как мой
/ index.js
const express = require("express");
const keys = require("./config/keys");
const path = require("path");
const app = express();
app.use(express.static(__dirname));
app.use(express.static(path.join(__dirname, "public")));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
// uses fuzeRoutes
require("./routes/routes")(app);
app.get("*", function(req, res) {
res.sendFile(__dirname, "public", "index.html");
});
app.listen(process.env.PORT || 5000, function() {
console.log(
"Express server listening on port %d in %s mode",
this.address().port,
app.settings.env
);
});
package.json
"scripts": {
"client-install": "npm install --prefix client",
"start": "node index.js",
"server": "nodemon index.js",
"client": "npm run start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "cd client && npm install && npm run build"
},
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.18.0",
"concurrently": "^4.1.0",
"express": "^4.16.4",
"http-proxy-middleware": "^0.19.1",
"nodemon": "^1.18.9"
}
теперь это работает локально снет проблем, но при развертывании heroku я получаю сообщение об ошибке at=error code=H13 desc="Connection closed without response" method=GET path="/"
при просмотре других вопросов, которые я вижу из-за "SSL termination occurs at Heroku's load balancers; they send your app plain (non-SSL) traffic, so your app should create a non-HTTPS server."
при просмотре других заданных вопросов, я либо не понимаю решение, либо нетнайти правильную тему.
любая помощь будет оценена
ОБНОВЛЕНИЕ:
Мне удалось решить проблему с ошибкой H13.
Проблема заключалась в том, что
app.use(express.static(path.join(__dirname, "public")));
//
//
//
app.get("*", function(req, res) {
res.sendFile(__dirname, "public", "index.html");
});
должно было быть:
app.use(express.static(path.join(__dirname, "client/public")));
//
//
//
app.get("*", function(req, res) {
res.sendFile(__dirname,"client", "public", "index.html");
});
Проблема заключается в том, что при развертывании я получаю код состояния 200 с at=info method=GET path="/"
, ностраница возвращается пустойHTML-код страницы показывает, что в пути сборки есть <div id="root">
, но страница не загружает реагирующие компоненты.