为什么"取用谷歌"返回从我在GCP存储上的React应用程序中找不到

时间:2018-04-10 21:24:29

标签: reactjs google-cloud-platform react-router google-search-console

我已经通过create-react-app创建了我的React应用程序。 然后我把它放入GCP存储。 我将网站配置(主页面和404页面)设置为index.html。

文件夹结构就像这样

├── asset-manifest.json
├── favicon.ico
├── index.html
├── manifest.json
├── service-worker.js
├── sitemap.txt
├── static
│   ├── css
│   │   └── main.****.css
│   └── js
│       └── main.****.js

我正在使用react-router。路由就像这样

      <Route exact path="/" component={Home} />
      <Route exact path="/about" component={About} />

当我从网络浏览器检查我的应用时,它完全没问题。 我可以看到www.mydomain.comwww.mydomain.com/about

当我通过&#34; Fetch as Google&#34;检查时,www.mydomain.com没问题。 但www.mydomain.com/about返回&#34;未找到&#34;

我已经使用Chrome 41(旧版本)进行了检查。我可以看到www.mydomain.com/about

有谁知道为什么我找不到? 我应该检查哪一部分?

1 个答案:

答案 0 :(得分:0)

尝试将我的应用部署到GitHub页面时出现此问题。我决定使用netlify部署我的应用程序,因为netlify有一个prerender选项。现在&#34;取用谷歌&#34;识别路线。

我的App.jsx:

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

import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
import Navbar from './components/CustomNavbar';
import Footer from './components/footer';

class App extends Component {
  render() {
    return (
      <Router basename={process.env.PUBLIC_URL}>
      <div>
          <Navbar />
          <Route exact path="/" component={Home} />
          <Route path="/about" component={About} />
          <Route path="/contact" component={Contact} />
          <Footer />
        </div>
      </Router>
    );
  }
}

export default App;