url中的子路径返回使用react router的nginx和express server的内部服务器错误
因此,基本上我有一个运行在端口4000上的express服务器,Nginx使用代理传递重定向到该端口。当我在浏览器()中访问域的根目录时,一切正常。但是当我刷新导航到的任何子路由或尝试直接访问它们()时,我会得到一个内部服务器错误 在我的express服务器上运行的react应用程序在本地运行时与react router dom配合使用绝对正常,但我的Nginx配置有问题 我一整天都在努力解决这个问题,非常感谢您的帮助 这是Nginx中我的站点可用/默认文件url中的子路径返回使用react router的nginx和express server的内部服务器错误,express,nginx,Express,Nginx,因此,基本上我有一个运行在端口4000上的express服务器,Nginx使用代理传递重定向到该端口。当我在浏览器()中访问域的根目录时,一切正常。但是当我刷新导航到的任何子路由或尝试直接访问它们()时,我会得到一个内部服务器错误 在我的express服务器上运行的react应用程序在本地运行时与react router dom配合使用绝对正常,但我的Nginx配置有问题 我一整天都在努力解决这个问题,非常感谢您的帮助 这是Nginx中我的站点可用/默认文件 server { r
server {
root /var/www/index.html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name buildingblockscms.tech www.buildingblockscms.tech;
location / {
proxy_pass http://localhost:4000/; #whatever port your app runs$
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-Host $server_name;
proxy_redirect off;
}
这是我在端口4000上运行的服务器文件:
const express = require('express');
const mongoose = require('mongoose');
const graphqlHTTP = require('express-graphql');
const auth = require('./middleware/auth');
const app = express();
const fileUpload = require('express-fileupload');
app.use(express.json());
// enable files upload
// app.use(
// fileUpload({
// createParentPath: true
// })
// );
// DB Config
const db = process.env.mongoURI || require('./config/keys').mongoURI;
// Connect to Mongo
mongoose
.connect(db, { useUnifiedTopology: true, useNewUrlParser: true })
.then(() => console.log('MongoDB connected...'))
.catch((err) => console.log(err));
// Use Routes
app.use('/api/content-types', require('./routes/api/content-types'));
app.use('/api/sites', require('./routes/api/sites'));
app.use('/api/users', require('./routes/api/users'));
app.use('/api/pages', require('./routes/api/pages'));
app.use('/api/auth', require('./routes/api/auth'));
// GraphQL Route
app.use(
'/graphiql',
auth,
graphqlHTTP({
schema: require('./routes/client-graphql/schema'),
graphiql: true,
})
);
// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
// Set static folder
app.use(express.static('client/build'));
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
});
}
const port = process.env.PORT || 4000;
app.listen(port, () => console.log(`Server started on port ${port}`));
嘿,伙计,你能用react路由器修复配置吗?我遇到了同样的问题react路由器不能在本地正常工作的服务器上工作。嘿,伙计,你能用react路由器修复配置吗?我遇到了同样的问题react路由器不能在本地正常工作的服务器上工作。