Развертывание гибкого инструмента ReactJs на основе цепочки инструментов в Gcloud - PullRequest
0 голосов
/ 01 сентября 2018

Я создал многостраничное приложение ReactJs, используя следующий набор инструментов:

  • Пряжа (менеджер пакетов)
  • Webpack (Bundler)
  • Babel (Компилятор)

После развертывания в Gcloud работает только целевая страница. Каждая другая страница показывает эту ошибку:

Не найдено

Мой app.yaml выглядит так

runtime: nodejs
env: flex

handlers:
  - url: /
    static_files: dist/index.html
    upload: dist/index.html

  - url: /(.*)
    static_files: dist/index.html
    upload: dist/index.html

сценарии в package.json

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "NODE_ENV=production webpack --progress && NODE_ENV=production node server.js",
  "dev": "webpack-dev-server --mode development",
  "build": "webpack --mode production"
}

server.js выглядит так

'use strict';

const port = process.env.PORT || 3000;
const Koa = require('koa');
const serve = require('koa-static');
const convert = require('koa-convert');
const app = new Koa();
const _use = app.use;
app.use = (x) => _use.call(app, convert(x));
app.use(serve('./dist'));

const server = app.listen(port, function () {
 let host = server.address().address;
 let port = server.address().port;
 console.log('listening at http://%s:%s', host, port);
});

app.js с маршрутизатором

render() {
  return (
    <Router history={browserHistory}>
      <Switch>
        <Route exact path="/" component={LandingPage} />
        <Route path="/about" component={AboutUsPage} />
      </Switch>
    </Router>
  );
}

Я попытался изменить обработчики в app.yaml и также попытался изменить server.js, но ничего не работает. Мы будем благодарны за любую помощь.

Примечание: приложение отлично работает в моей локальной среде.

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