static.json не работает для маршрутов ReactJS и Heroku - PullRequest
0 голосов
/ 17 октября 2018

Теоретически это должно сработать, добавив в папку / файл /static.json, который заставляет все идти в React index.html.

(связанный)

React Routing работает на локальном компьютере, но не в Heroku

https://github.com/heroku/heroku-buildpack-static#configuration

В моем случае это не работает, я получаю Cannot GET /hello вместо получения index.html.Удивительно, но если я сразу перехожу на /index.html, я получаю страницу, но маршрут не активируется.

Что происходит и как я могу это исправить?

ОБНОВЛЕНИЕ: попробовал без удачи /static.jason /src/static.jason /client/static.jason /client/src/static.jason

/static.json

{
  "routes": {
    "/**": "index.html"
  }
}

/client/src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import FileUpload from './FileUpload';

ReactDOM.render(
  <div><FileUpload /></div>,
  document.getElementById('root')
);

/client/src/FileUpload.mjs

import React, { Component } from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';

class TextFileReader extends Component {
 render() {
  return (
   <Router>
    <div>
     <Route path="/heyyo" render={() => <span>heyyo</span>} />
     <Route exact path="/" render={() => <div>resting</div>} />
     <Route path="/what" render={() => <div>what</div>} />
      NO ROUTES HERE
    </div>
   </Router>
  )
 }
}

export default TextFileReader;

1 Ответ

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

Наконец, перечитайте лучше это Реактивная маршрутизация работает на локальном компьютере, но не в Heroku Я добавил эту строку в свой Express

app.get('/*', (req, res) => {
  let url = path.join(__dirname, '../client/build', 'index.html');
  if (!url.startsWith('/app/')) // we're on local windows
    url = url.substring(1);
  res.sendFile(url);
});

И после развертывания в Heroku онработает:)

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