反应找不到内容Heroku部署

时间:2019-01-26 22:18:20

标签: node.js heroku create-react-app

我正在尝试将Node.js部署并响应应用程序到Heroku。它在本地完全可以正常工作,并且确实为我的后端服务,但是在我的api端点之外的其他任何地方都找不到。似乎未在客户端文件夹中运行构建脚本。谁能帮助我找出问题所在?

  

server.js

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const path = require('path');

const projects = require('./routes/api/projects');

const app = express();

// Body parser middlewaree
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// DB Config
const db = require('./config/keys').mongoURI;

// Connect to DB
mongoose
.connect(
 db,
 { useNewUrlParser: true }
)
.then(() => console.log('mongoDB connected.'))
.catch(err => console.log(err));

// Setting up routes
app.use('/api/projects', projects);

// Serve static assets if in production
app.use(express.static(path.join(__dirname, '/client/build')));

app.get('*', (req, res) => {
res.sendfile(path.join((__dirname, '/client/build/index.html')));
});

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server up and running on ${port}`));
  

package.json

"scripts": {
"client-install": "npm install --prefix client",
"start": "node server.js",
"server": "nodemon server.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
},

1 个答案:

答案 0 :(得分:0)

我已使用以下代码成功部署到Heroku(我刚刚回答了类似的问题here):

INSTALLED_APPS = (
    'djangocms_admin_style',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.admin',
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'django.contrib.staticfiles',
    'django.contrib.messages',
    'cms',
    'menus',
    'sekizai',
    'treebeard',
    'djangocms_text_ckeditor',
    'filer',
    'easy_thumbnails',
    'djangocms_column',
    'djangocms_file',
    'djangocms_link',
    'djangocms_picture',
    'djangocms_style',
    'djangocms_snippet',
    'djangocms_googlemap',
    'djangocms_video',

    'mptt',
    'aldryn_bootstrap3',
    'aldryn_background_image',
    'djangocms_icon',
    'djangocms_blog',

    'web_nia'
)

此外,如果您尝试部署create-react-app应用程序,则可以使用this buildpack。 Buildpacks是在部署应用程序时运行的脚本。它们用于为您的应用安装依赖项并配置您的环境。

您可以查看full code here,了解我通常如何部署Heroku应用程序。

相关问题