Nuxt3 Robots.txt - @nuxtjs/robots 未生成 robots.txt 文件

问题描述 投票:0回答:6

我正在构建一个 Nuxt 3 项目。我需要我的构建来生成 robots.txt 文件,就像这个包声明的那样 -> https://github.com/nuxt-community/robots-module

运行“nuxt build”和/或“nuxt生成”后,robots.txt不会像我预期的那样出现在输出或公共文件夹中。

我肯定错过了一些东西,很可能是个白痴。有谁知道我错过了什么?这是我的代码:

package.json

  "dependencies": {
    ...
    "@nuxtjs/robots": "^2.5.0", 
    }

nuxt.config.ts

 target: "static",
  runtimeConfig: {
    NUXT_STORYBLOK_PRODUCTION_KEY: process.env.NUXT_STORYBLOK_PRODUCTION_KEY,
    public: {
      CDN: process.env.CDN,
      NUXT_STORYBLOK_PREVIEW_KEY: process.env.NUXT_STORYBLOK_PREVIEW_KEY,
      NUXT_DOMAIN_NAME: process.env.NUXT_DOMAIN_NAME,
    },
  },
  modules: [
    ...
    "@nuxtjs/robots",
  ],
  robots: {
    UserAgent: "*",
    Disallow: "",
  },
}
javascript nuxt.js robots.txt nuxtjs3
6个回答
2
投票

您正在为您的项目使用不兼容版本的 nuxt 机器人。确保您使用的是版本 ^3.0.0。以下任何版本均与 nuxt 3 不兼容。

npm install @nuxtjs/[email protected]  

然后确保您的 nuxt.config.ts 与下面类似。正如约翰·奥弗斯特里特上面提到的,这个简单的方法似乎有缺陷。

我在项目的根目录中创建了一个 config 文件夹,并将 robots.txt 文件放在其中:

export default {
  modules: [
    ['@nuxtjs/robots', { configPath: "~/config/robots.config" }]
  ]
}

您还需要从公共文件夹中删除 robots.txt 文件

构建/生成您的项目并转到“/robots.txt”

该文件是根据上述路线的请求动态生成的。

在我和约翰的帮助下,我希望这有助于解决您的问题:)


1
投票

我刚刚在 Nuxt 3 上成功安装了这个模块,我认为这里有几件事需要注意。

首先,我从未设法让任何模块的模块选项在 Nuxt 3 中按照您所示的方式工作(顶级选项,根据模块文档):

  modules: [
    ...
    "@nuxtjs/robots",
  ],
  robots: {
    UserAgent: "*",
    Disallow: "",
  }

您尝试过其他选择吗?您还可以尝试使用 Robots Config 文件,或在声明模块时传递选项(来自存储库的 README.md):

export default {
  modules: [
    // Simple usage
    '@nuxtjs/robots',

    // With options
    ['@nuxtjs/robots', { /* module options */ }]
  ]
}

另一件事是,在运行构建或开发后,我也没有在任何地方看到生成的 robots.txt 文件,但是如果我在开发或构建预览中转到“/robots.txt”,我可以看到输出工作为故意的。您尝试过访问该路径吗?

它看起来像是访问路由时服务器生成的东西,而不是默认在构建时生成的静态文件。我认为你可以在选项中更改它,但这不是我需要的东西,所以我没有深入研究它。

希望这能有所帮助!


1
投票

嗨,我认为与 Nuxt 3 生态系统保持一致,使用此模块会更好:

nuxt-simple-robots

您可以通过

yarn add -D nuxt-simple-robots

安装它

(在同一页面中,您还可以找到 Sitemap 的模块以及 Nuxt 3 SEO 的所有 SEO 所需模块)

这是有关如何安装和使用它的文档

https://nuxtseo.com/robots/getting-started/installation


0
投票

在 Nuxt 3 上,这会在 dist 中生成默认的 robots.txt 文件,但设置所描述的参数不会执行任何操作(内联或不执行)。

我在部署之前手动修改了 dist/robots.txt 文件。

不太理想,但至少它生成了默认文件。


0
投票

它对我来说也不起作用。所有的方法我都试过了

  1. 根据文档,
    npm install @nuxtjs/robots
  2. 我尝试使用版本
    npm install @nuxtjs/[email protected]
    并创建一个
    robots.config
    文件。

两者都不起作用。最后,我最终在公共文件夹中创建了一个

robots.txt
文件。


0
投票

我讨厌人们在他们想做的每件事上都使用第 3 方模块,npm 安装这个,npm 安装那个,你是一个 wordpress 开发者试图做 nuxt 吗?

© www.soinside.com 2019 - 2024. All rights reserved.