Npm @在生产模式下找不到nuxt/内容页

Npm @在生产模式下找不到nuxt/内容页,npm,markdown,nuxt.js,Npm,Markdown,Nuxt.js,解释 您好,当我运行npm-run-build&&npm-run-start时,我的项目中的numxt/content出现问题。 您必须知道,在开发模式中没有问题 当我运行生产模式时,我无法访问与nuxt/content一起使用的文件,您可以看到出现在我的控制台中的错误 编辑 我发现了问题所在,这个错误来自SPA(如果我选择SSR,它工作正常)。有人有办法解决吗 重现问题的步骤: 创建项目:npx Create numxt app content project和&cd content pro

解释

您好,当我运行
npm-run-build&&npm-run-start
时,我的项目中的numxt/content出现问题。 您必须知道,在开发模式中没有问题

当我运行生产模式时,我无法访问与nuxt/content一起使用的文件,您可以看到出现在我的控制台中的错误

编辑

我发现了问题所在,这个错误来自SPA(如果我选择SSR,它工作正常)。有人有办法解决吗

重现问题的步骤:

  • 创建项目:
    npx Create numxt app content project和&cd content project
    下面是我的配置。
  • 进入项目,然后安装nuxt/content:
    npm install@nuxt/content
  • 进入nuxt.config.js并添加到“模块:[]”中:“@nuxt/content”,然后添加“content:{}”
  • 在tsconfig.json中,在“types”处添加以下行:“@nuxt/content”,
  • 在项目的根目录下,将一个名为“content”的目录添加到此目录中,创建一个名为“test.md”的文件,并将以下行添加到该文件中:
  • ---
    标题:导言
    描述:Apprenez评论利用者@nuxt/content。
    ---
    ##留置权
    Nuxt-Link-vers-le博客
    [Lien Markdown vers le博客](/fr/articles)
    [留置权减记外部](https://nuxtjs.org)
    
  • 在pages目录中,创建一个名为“testcontent.vue”的新文件,并将此代码添加到:
  • 
    {{page.title}}
    导出默认值{
    异步数据({$content}){
    const page=await$content('test')。fetch()
    返回{
    页
    }
    },
    }
    
  • 现在,您可以在开发模式下保存并尝试此操作
    npm run dev
    ,请尝试此链接“http://localhost:3000/testcontent“,这应该行得通
  • 然后在生产模式下尝试此操作
    npm运行构建和&npm运行启动
    。我不明白为什么这样不行

  • 问题解决了。我正在使用一个目标为“服务器”的SPA。在nuxt.config.js中,如果您的应用程序是SPA,则必须在下面的行中添加:
    target:'static'


    “通过这种方式,Nuxt Content将知道它必须嵌入数据库,并避免调用服务器中间件。”从

    中,您可以完全使用SPA,甚至是带有
    目标:静态
    的完整通用应用程序。我不确定你的答案是否正确

    很明显,您可以获得
    target:static
    (因此,将其托管在Netlify或类似设备上),并保持通用模式(
    ssr:true(默认)
    )。唯一需要做的是
    numxt生成
    ,而不是
    numxt构建
    ,因为您的目标是静态构建

    另外,这条评论已经有6个多月了,我们今天使用的是Nuxt 2.15.2


    我仍然建议使用
    static
    +universal来获得nuxt+的内容模块的所有好处。

    还没有使用它,所以我只能链接此资源:告诉我你是否找到了感谢它的方法。@kissu这不起作用。我试着重复她的动作,在dev中,这是有效的。但是最后,当我用npm run generate(而不是为她生成nuxt)生成我的项目时,我得到了相同的错误。你的
    npm run generate
    命令在你的
    包中做了什么。json
    ?我的
    npm run generate
    正在做
    nuxt ts generate
    你是否遵循了这个包的ts设置?这可能是这里的问题,而不是
    @content
    部分。从
    目标
    开始,您可以完全使用
    服务器
    静态
    。它只会改变这样一个事实,即您是否需要在后台运行NodeJS服务器。如果您只想要SPA,则需要设置
    ssr:false
    。我的
    ssr:false
    已设置为false,但不起作用。当我改为静态时,我的应用程序内容起作用了。如果你只使用SPA,使用Nuxt+内容有什么意义?您将失去性能+搜索引擎优化的所有好处。
    ---
    title: Introduction
    description: Apprenez comment utiliser @nuxt/content.
    ---
    
    ## Liens
    
    <nuxt-link to="/articles">Nuxt Link vers le Blog</nuxt-link>
    
    <a href="/articles">Lien Html vers le Blog</a>
    
    [Lien Markdown vers le Blog](/fr/articles)
    
    <a href="https://nuxtjs.org">Lien Html externe</a>
    
    [Lien Markdown externe](https://nuxtjs.org)
    
    <template>
      <article>
        <h1>{{ page.title }}</h1>
        <nuxt-content :document="page" />
      </article>
    </template>
    
    <script>
    export default {
      async asyncData({ $content }) {
        const page = await $content('test').fetch()
    
        return {
          page,
        }
      },
    }
    </script>