我正在构建一个 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: "",
},
}
您正在为您的项目使用不兼容版本的 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”
该文件是根据上述路线的请求动态生成的。
在我和约翰的帮助下,我希望这有助于解决您的问题:)
我刚刚在 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”,我可以看到输出工作为故意的。您尝试过访问该路径吗?
它看起来像是访问路由时服务器生成的东西,而不是默认在构建时生成的静态文件。我认为你可以在选项中更改它,但这不是我需要的东西,所以我没有深入研究它。
希望这能有所帮助!
嗨,我认为与 Nuxt 3 生态系统保持一致,使用此模块会更好:
nuxt-simple-robots
您可以通过
yarn add -D nuxt-simple-robots
安装它
(在同一页面中,您还可以找到 Sitemap 的模块以及 Nuxt 3 SEO 的所有 SEO 所需模块)
这是有关如何安装和使用它的文档
在 Nuxt 3 上,这会在 dist 中生成默认的 robots.txt 文件,但设置所描述的参数不会执行任何操作(内联或不执行)。
我在部署之前手动修改了 dist/robots.txt 文件。
不太理想,但至少它生成了默认文件。
它对我来说也不起作用。所有的方法我都试过了
npm install @nuxtjs/robots
。npm install @nuxtjs/[email protected]
并创建一个 robots.config
文件。两者都不起作用。最后,我最终在公共文件夹中创建了一个
robots.txt
文件。
我讨厌人们在他们想做的每件事上都使用第 3 方模块,npm 安装这个,npm 安装那个,你是一个 wordpress 开发者试图做 nuxt 吗?