Приложение Heroku работает только на Chrome Desktop // Приложение React.Js - PullRequest
0 голосов
/ 24 мая 2018

Недавно закончили собирать проект React, который выбирает новостные статьи и отображает их.Недавно развернут в Heroku и обнаружили, что только Chrome на рабочем столе, кажется, запускает его.

Safari и Firefox выдают мне одну и ту же ошибку, когда я смотрю в консоли Javascript. Ошибка JavaScript

Ссылка на приложение heroku - https://calm -bastion-47290.herokuapp.com/?

Настройка сервера

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

const users = require("./routes/api/users");
const profile = require("./routes/api/profile");

const app = express();
// Body Parser Middleware
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

// DB config
const db = require("./config/keys").mongoURI; //mongodb database url connection

// connect to mongodb
mongoose
  .connect(db)
  .then(() => console.log("MongoDB Connected"))
  .catch(err => console.log(err));

//passport Middleware

app.use(passport.initialize());

//passport config
require("./config/passport")(passport);

//use routes

app.use("/api/users", users);
app.use("/api/profile", profile);

// Server static assets if in production
if (process.env.NODE_ENV === "production") {
  // Set static folder
  app.use(express.static("client/build"));

  app.get("*", (req, res) => {
    res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
  });
}

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

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

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

1 Ответ

0 голосов
/ 09 ноября 2018

Просто была такая же проблема.Перед развертыванием убедитесь, что вы извлекли инструменты разработки излишков.

В вашем файле store.js есть следующее, чтобы не использовать "redux devtools" в рабочей среде.

if(process.env.NODE_ENV === 'production') {
    store = createStore(rootReducer, initialState, compose(
        applyMiddleware(...middleware)
    ));
} else {
    store = createStore(rootReducer, initialState, compose(
        applyMiddleware(...middleware),
        window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
    ));
}

Идея состоит в том,включать только REDUX_DEVTOOLS во время разработки.В производстве это не должно использоваться, потому что тогда только браузеры с расширением redux devtool смогут просматривать страницу.

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