为什么 Axios 无法在生产模式下使用我的 url 参数?
Why Axios doesn't manage to use my url params in prod mode?
我在使用 React 生产 axios .get
时遇到问题,因为在开发模式下一切正常。
在开发模式下,我有一个 url (https://www.mon-gouvernement.fr/gouvernement/1),最后是一个数字。这个数字用于从我的数据库中获取我的数据。但是在生产中,我的终端出现错误。
server.js 使用 sequelize 模块来管理我的数据库
const express = require('express');
const app = express();
const cors = require('cors');
const path = require('path');
app.use(express.json());
app.use(cors());
const db = require('./models');
//************************************************
// ROUTES
//************************************************
const governmentCreateRouter = require('./routes/GovernmentCreate');
app.use("/governmentCreate", governmentCreateRouter);
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
db.sequelize.sync().then(() => {
app.listen();
});
GovernmentCreate.js
const express = require('express');
const router = express.Router();
const { GovernmentCreate } = require('../models');
router.get("/byId/:id", async (req, res) => {
const id =req.params.id;
const GovernmentId = await GovernmentCreate.findByPk(id, {
include: {all: true}
});
res.json(GovernmentId);
});
我的 GouvernmentId.js 中的部分代码用 url https://www.mon-gouvernement.fr/gouvernement/1
.
调用
let { id } = useParams();
console.log(id)
axios.get(`https://www.mon-gouvernement.fr/governmentCreate/byId/${id}`)
.then((res) => {
console.log(res.data)
setGovernmentList([res.data]);
}).catch((err) => {
console.log(err);
});
app.js
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/a-propos" element={<About />} />
<Route path="/creer-son-gouvernement" element={<CreateGovernment />} />
<Route path="/gouvernement-galerie" element={<GovernmentWall />} />
<Route path="/gouvernement/:id" element={<GovernmentId />} />
<Route path="*" element={<Error404 />} />
</Routes>
</BrowserRouter>
错误 我得到了
La feuille de style https://www.mon-gouvernement.fr/gouvernement/static/css/main.3eea6a9b.css n’a pas été chargée car son type MIME, « text/html », n’est pas « text/css ».
Le script à l’adresse « https://www.mon-gouvernement.fr/gouvernement/static/js/main.02a475ac.js » a été chargé alors que son type MIME (« text/html ») n’est pas un type MIME JavaScript valide.
Uncaught SyntaxError: expected expression, got '<'
我知道我的 URL (https://www.mon-gouvernement.fr/gouvernement/:id) 在我的 server.js 上被 .get('/*'
捕获了。但为什么它没有 return 页面?在我的其他页面上一切正常。
我用下面的代码解决了我的问题。我添加到我的 package.json 这一行
"homepage": "https://www.mon-gouvernement.fr/",
我在使用 React 生产 axios .get
时遇到问题,因为在开发模式下一切正常。
在开发模式下,我有一个 url (https://www.mon-gouvernement.fr/gouvernement/1),最后是一个数字。这个数字用于从我的数据库中获取我的数据。但是在生产中,我的终端出现错误。
server.js 使用 sequelize 模块来管理我的数据库
const express = require('express');
const app = express();
const cors = require('cors');
const path = require('path');
app.use(express.json());
app.use(cors());
const db = require('./models');
//************************************************
// ROUTES
//************************************************
const governmentCreateRouter = require('./routes/GovernmentCreate');
app.use("/governmentCreate", governmentCreateRouter);
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
db.sequelize.sync().then(() => {
app.listen();
});
GovernmentCreate.js
const express = require('express');
const router = express.Router();
const { GovernmentCreate } = require('../models');
router.get("/byId/:id", async (req, res) => {
const id =req.params.id;
const GovernmentId = await GovernmentCreate.findByPk(id, {
include: {all: true}
});
res.json(GovernmentId);
});
我的 GouvernmentId.js 中的部分代码用 url https://www.mon-gouvernement.fr/gouvernement/1
.
let { id } = useParams();
console.log(id)
axios.get(`https://www.mon-gouvernement.fr/governmentCreate/byId/${id}`)
.then((res) => {
console.log(res.data)
setGovernmentList([res.data]);
}).catch((err) => {
console.log(err);
});
app.js
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/a-propos" element={<About />} />
<Route path="/creer-son-gouvernement" element={<CreateGovernment />} />
<Route path="/gouvernement-galerie" element={<GovernmentWall />} />
<Route path="/gouvernement/:id" element={<GovernmentId />} />
<Route path="*" element={<Error404 />} />
</Routes>
</BrowserRouter>
错误 我得到了
La feuille de style https://www.mon-gouvernement.fr/gouvernement/static/css/main.3eea6a9b.css n’a pas été chargée car son type MIME, « text/html », n’est pas « text/css ».
Le script à l’adresse « https://www.mon-gouvernement.fr/gouvernement/static/js/main.02a475ac.js » a été chargé alors que son type MIME (« text/html ») n’est pas un type MIME JavaScript valide.
Uncaught SyntaxError: expected expression, got '<'
我知道我的 URL (https://www.mon-gouvernement.fr/gouvernement/:id) 在我的 server.js 上被 .get('/*'
捕获了。但为什么它没有 return 页面?在我的其他页面上一切正常。
我用下面的代码解决了我的问题。我添加到我的 package.json 这一行
"homepage": "https://www.mon-gouvernement.fr/",