为什么 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/",