这个问题已经被别人回答过无数次了,但到目前为止似乎没有任何效果。大多数答案都包含了server.js文件的代码。我的应用程序后端是Ruby on Rails,前端是JavaScript和React,没有server.js文件。我的问题是,它是否应该有一个解决路线不能在Heroku上工作但在本地工作的问题?如果不是,如何解决这个问题?这是令人沮丧的应该我需要创建一个server.js文件时,一切都工作完美,当我导航到其他路由的链接(只是不是当我直接去到url),但当然,如果我需要我将。我只是直到现在才知道这个文件。
App.js下面
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
import 'semantic-ui-css/semantic.min.css';
import Articles from './components/Articles'
import Home from './components/Home'
import NotFound from './components/NotFound'
import NavBar from './components/Navbar'
import ChessBoard from './components/chess/ChessBoard'
import Info from './components/Info'
import './App.scss'
class App extends Component {
render () {
return <div className="app">
<div className="router">
<Router>
<NavBar/>
<Switch>
<Route path='/' exact component={Home} />
<Route path='/articles' exact component={Articles} />
<Route path='/chess' exact component={ChessBoard} />
<Route path='/info' exact component={Info} />
<Route component={NotFound} />
</Switch>
</Router>
</div>
</div>
}
}
export default App
并且,我添加了一个静态。
{
"root": "build/",
"routes": {
"/**": "index.html"
}
}
感谢一般来说,路由器工作在开发模式而不工作在生产模式是由于错误使用了publicPath
(或某些构建工具中的基本路径)。
你给我的信息太少了,我只能主观猜测
你的前端工作在本地只是因为它是在/
服务,不工作在远程服务器,因为它是在一个基本路径下服务,如/app
。在大多数构建工具中,默认的基本路径是/
。
如果你使用webpack,使用publicPath设置
更新:因为你使用的是React-router,所以使用basename.