nuxt 站点地图 - example.com/sitemap.xml 在 Layer0 主机上不存在

nuxt sitemap - example.com/sitemap.xml not exist on Layer0 hosting

我已经在 Layer0 using the following command layer0 deploy --site=sample-website --environment=production. I used Nuxt Sitemap Module 上部署了我的 nuxtjs 应用程序,以便为我的 nuxtjs 应用程序生成 sitemap.xml。它在开发环境中运行良好(http://127.0.0.1:3000/sitemap.xml),但在生产环境中,我找不到它。

nuxt.config.js :

export default {

  // Modules: https://go.nuxtjs.dev/config-modules
  modules: [
    '@nuxtjs/sitemap',
  ],


  sitemap: {
    hostname: 'https://sathyamolagoda.me',
    path: '/sitemap.xml',
    defaults: {
      lastmod: new Date(),
      changefreq: 'weekly',
      priority: 0.8,
    },
  },
}

npm run generate 将创建以下文件 ".nuxt\dist\sitemap-routes.json" 但它在部署到生产环境的 .layer0 文件夹中不可用。 会是什么问题,我错过了什么吗?

默认情况下 layer0 配置不会将 ".nuxt/dist/sitemap-routes.json" 文件包含到 .layer0 路径中。为了解决这个问题,我们必须向 layer0.config.js.

添加几行代码
'use strict'

// This file was automatically added by layer0 deploy.
// You should commit this file to source control.

module.exports = {
  backends: {
    origin: {
      domainOrIp: 'layer0-origin.example.com',
    },
  },
  includeNodeModules: true,
  connector: '@layer0/nuxt',
  // include the required file
  includeFiles: {
    '.nuxt/dist/sitemap-routes.json': true,
  },
}

然后文件将如下所示

如果您将 SSR 与 Nuxt 一起使用,请让 Nuxt 提供站点地图,而不是您使用 npm run generate 创建的静态文件。将以下内容添加到您的第 0 层路由器:

.match('/sitemap.xml', ({ renderWithApp }) => {
  renderWithApp()
})

我已经使用以下信息更新了我们的文档:https://docs.layer0.co/guides/nuxt#serving-sitemap-with-ssr