app.use(cors())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
connectDB()
const PORT = process.env.PORT || 5000;
const server = app.listen(PORT, () => console.log(`Server running on port ${PORT}`))
const socketio = require('socket.io')
const io = socketio(server)
const questions = require('./api/questions')(io)
app.use('/api/users', users)
app.use('/api/posts', posts)
app.use('/api/questions', questions)
express.static(`${__dirname}/client/public`)
app.get('*', (req, res) => {
console.log('here')
res.sendFile('/client/public/index.html', { root: __dirname }, (err) => {
if (err) {
console.log(err)
return res.json(err);
}
else {
console.log('file sent')
}
})
}
)
файл stati c отправляется клиенту, но страница не загружается, кто-то может помочь? Я потратил на это много времени. Мне нужно отправлять файл index. html каждый раз, когда маршрут не определен, в основном, если введен URL-адрес и ни один маршрут не совпадает, тогда возвращается индекс. html и загружается маршрут на стороне клиента. Я подозреваю, что файл не отправляется клиенту, но на вкладке сети я вижу, что он получает ответ с индексом. html, маршрут не загружается. Приложите фотографию вкладки сети, пожалуйста, помогите мне решить эту проблему. Также каждый раз, когда запрос отправляется на сервер, я получаю «файл отправлен» в консоли. это нормально? Так как я иду по маршруту, который существует, я подумал, что это ненормально. Если я удаляю резервный маршрут на своем бэкэнд-сервере, ничего не меняется на вкладке интерфейса и сети.
class App extends React.Component {
render() {
return (
<Provider store={store}>
<div className="App">
<Navbar />
<BrowserRouter>
<Switch>
<Route exact path='/' component={MainPage} />
<Route exact path='/news' component={News} />
<Route exact path='/login' component={Login}>
{/* {localStorage.jwtToken ? <Redirect to='/dashboard' /> : <Login />} */}
</Route>
<PrivateRoute exact path='/createpost' component={CreatePost} />
<Route exact path='/register' component={Signup} />
<Route exact path='/housing' component={Housing} />
<Route exact path='/housing/:title' component={PageLink} />
<Route exact path='/forsale/:title' component={PageLink} />
<Route exact path='/forsale' component={ForSale} />
<PrivateRoute exact path='/dashboard' component={Dashboard} />
</Switch>
</BrowserRouter>
<Footer />
</div>
</Provider>
);
}
}
export default App;
РЕДАКТИРОВАТЬ: как я подозревал, req.url возвращает /index.css я не знаю как ,
прокси не работает, когда URL вводится вручную или копируется. когда я изменяю URL на http://localhost: 5000 / localhost: 3000 / регистрация Он переходит на внутренний маршрут, но возвращает
> Server running on port 5000 [0] /localhost:3000/signup [0] file sent
> [0] /localhost:3000/index.css [0] file sent [0] Database Connected [0]
> URIError: Failed to decode param
> '/localhost:3000/%PUBLIC_URL%/manifest.json' [0] at
> decodeURIComponent (<anonymous>)