NodeJS:URL友好显示空白页

时间:2019-04-25 11:33:23

标签: node.js reactjs webpack routing react-router

我正在使用Node.js和React.js开发一个网页,现在我的网站具有以下网址:

/liga-femenina-1
/liga-femenina-1/equipos
/liga-femenina-1/resultados
/liga-femenina-1/estadisticas
/liga-femenina-1/buscador
/liga-femenina-2
/liga-femenina-2/equipos
/liga-femenina-2/resultados
/liga-femenina-2/estadisticas
/liga-femenina-2/buscador

要检测这些url,我定义了以下正则表达式:

\/liga-femenina-(1|2)\/?\w*

此正则表达式可正确检测所有url。您可以在这里检查它:

enter image description here

我使用此正则表达式使用以下代码来检测我的文件route.js中所有这些url:

import {Router} from "express";
import path from "path";

const router = Router();
router.get(/\/liga-femenina-(1|2)\/?\w*/, (req, res) => {
    res.sendFile(path.resolve(__dirname, "../../../dist/index.html"));
});

使用这些代码,如果我像http://localhost:4000/liga-femenina-1http://localhost:4000/liga-femenina-2这样直接访问url,就可以正常工作。但是,如果我尝试访问这些其他网址:

/liga-femenina-1/equipos
/liga-femenina-1/resultados
/liga-femenina-1/estadisticas
/liga-femenina-1/buscador
/liga-femenina-2/equipos
/liga-femenina-2/resultados
/liga-femenina-2/estadisticas
/liga-femenina-2/buscador

然后,不呈现该网页。该网页显示为空白。

如何检测所有网址?我在做什么错了?

编辑我:

我已经检查了何时呈现页面和何时不呈现页面的哪个请求接收服务器。例如,如果我请求以下网址:http://localhost:4000/liga-femenina-1,则页面已呈现,并且在服务器中,我们得到了:

GET /liga-femenina-1 200 1.135 ms - 642
GET /assets/js/bundle.js 304 0.549 ms - -

但是,如果我请求以下网址:http://localhost:4000/liga-femenina-1/equipos,则不会呈现该页面,并且在服务器中,我们已经得到:

GET /liga-femenina-1/equipos 200 0.950 ms - 642
**GET /liga-femenina-1/assets/js/bundle.js 404 0.607 ms - 174**

在第一种情况下,当服务器要查找bundle.js文件时,它将从/assets/js/bundle.js执行该操作并呈现网页。但是在第二种情况下,服务器将在目录 / liga-femenina-1 /assets/js/bundle.js中查找bundle.js文件。而且该目录不存在。

因此,为什么在第一种情况下服务器正确访问文件而在第二种情况下服务器未正确访问文件?

因此,为什么在第一种情况下服务器正确访问文件而在第二种情况下服务器未正确访问文件?

0 个答案:

没有答案