Настроить производственную среду в приложении create-реакции-приложение (SyntaxError: Неожиданный токен <в JSON в позиции 0) - PullRequest
0 голосов
/ 03 июня 2018

Я хочу настроить производственную среду в своем приложении (используя create-реагировать на приложение).Может быть, это глупый вопрос, потому что я ищу, и есть много статей по этому поводу, но ничего из этого мне не помогло.Кроме того, я использовал коды в create-реагировать-приложение здесь (производство) и здесь (разработка), но все еще не работает.

Для серверной стороны яиспользуя узел и все API работают хорошо с режимом разработки в реакции.но когда я использую производственный режим, он не работает.

Он просто возвращает

SyntaxError: Неожиданный токен <в JSON в позиции 0 </p>

в консоли браузера.

Я могуне получить доступ к моим маршрутам на сервере в производственном режиме.

Как я могу решить это?Помощь приветствуется.

Это мое дерево приложений, папка внешнего интерфейса содержит мой код реакции и работает на другом порту (сервер: 3000, реакция: производство: 3001, разработка: 5000).Я добавил эти строки кода в app.js:

app.use(express.static(path.join(__dirname, 'front-end/build')));
 app.get('*', function (req, res) {
 res.sendFile(path.join(__dirname, 'front-end/build', 'index.html'));
 });

и это в www.js:

if (process.env.NODE_ENV === 'production') {
app.use(express.static('front-end/build'));
 }

enter image description here

1 Ответ

0 голосов
/ 05 сентября 2018

Я нашел свой ответ, и теперь мое приложение работает в производственном режиме, и я развернул его.Я только что добавил эти строки в мой app.js в корневом каталоге в коде на стороне сервера (приложение узла):

let root = path.join(__dirname, '..', 'myapp/fron-end/build');
  app.use(express.static(root));
  app.use(function(req, res, next) {
  if (req.method === 'GET' && req.accepts('html') && !req.is('json') && 
     !req.path.includes('.')) {
         res.sendFile('index.html', { root });
    } else next();
  });

Здесь myapp - это имя папки моего проекта (сервер)-side) и fron-end - это имя моей интерфейсной папки, которая включает в себя папку builds, созданную для производства.(Я помещаю свою внешнюю папку в папку на стороне сервера)

Эта ссылка мне помогает. Uncaught SyntaxError: Неожиданный токен <# 1812 </a>

Надеюсь, это поможет другим.

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