如果这个问题含糊不清,很抱歉,但我真的不知道要呈现什么代码。
我有一个运行良好的Heroku网页。我使用reach-router通过点击按钮从一个页面导航到另一个页面:<button onClick={() => navigate('/intro')}>Click</button>。当我这样做的时候,url会相应地改变,并且我的内容是可见的。但是,如果我输入完全相同的url,我会得到一个错误,显示为Cannot GET /intro。如果我使用按钮单击导航,然后重新加载页面,则甚至会发生此错误。
据我所知,app.use(express.static('build'));将为我的静态文件提供服务。
那么,如果我从根url开始并从那里导航,为什么我可以访问页面,但我不能输入url并转到该页面?
该网站在这里实况https://build-a-wedding.herokuapp.com/
在我的server.js上添加更多详细信息
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const cors = require('cors');
const sessionMiddleware = require('./modules/session-middleware');
require('dotenv').config();
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(sessionMiddleware);
app.use(cors());
// Serve static files
app.use(express.static('build'));
app.use(express.static(path.resolve(__dirname, '..', 'build')));
const users = require('./routes/users.router');
const dataFetch = require('./routes/data.router');
const venues = require('./routes/venues.router');
app.use('/users', users);
app.use('/location', dataFetch);
// app.use('/', auth);
app.use('/venues', venues);
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`Listening on port: ${PORT}`);
});当我以编程方式导航时,下面是我在源代码中看到的内容

当我输入相同的URL时,这里是源代码树

发布于 2020-12-05 01:35:07
只需在React项目的根目录下创建一个包含以下内容的static.json文件:
{
"root": "build/",
"clean_urls": false,
"routes": {
"/**": "index.html"
}
}发布于 2020-09-14 09:06:07
确保您的express应用程序正在侦听这些路由并向其发送响应。示例:
app.get('/intro', function (req, res) {
res.send(pathToPage);
});https://stackoverflow.com/questions/63876053
复制相似问题