灯塔阅读我的索引,而不是robots.txt

时间:2018-09-07 09:44:08

标签: reactjs robots.txt

我想在我的React应用程序上使用chrome审核工具,但它一直说我的robots.txt文件无效。事实是,该文件似乎非常好,只是它不读取robots.txt,而是我的index.html文件,因此导致此错误:

enter image description here

两个文件都在我的/ public文件夹中,所以为什么要读取索引文件?

1 个答案:

答案 0 :(得分:0)

如果您使用 Node 和 Express 来在生产环境中运行您的 React 应用 项目。 如果您的服务器文件代码看起来像下面的代码片段,这意味着您为所有请求(路由)提供相同的文件。在灯塔审计期间,浏览器http://localhost:5000/robots.txt 发出一个 get 请求,作为回报,它得到了 index.html.

 app.get('/*', function (req, res) {
   res.sendFile(path.join(__dirname, 'build', 'index.html'));
 });

要解决这个问题,您可以在上面的代码片段之前为robots.txt文件添加路由,如下所示。

 app.get('/robots.txt', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'robots.txt'));
});

app.get('/*', function (req, res) {
   res.sendFile(path.join(__dirname, 'build', 'index.html'));
 });