【问题标题】:Nuxt.js static app is loading indefinitelyNuxt.js 静态应用程序无限期加载
【发布时间】:2022-11-10 03:42:22
【问题描述】:

我刚刚完成了一个 Nuxt.js 项目,我想将它部署在 Web 服务器上。所以,我执行了命令nuxt generate 来拥有一个静态应用程序。在此之前,一切工作正常,但现在没有任何工作:页面正在无限加载,页面中心有一个旋转的黑色和灰色圆形。
这是一张图片

编辑:
我在 OVHcloud 上托管我的应用程序,这是我的应用程序的公共存储库:https://github.com/maximehamou/public.mh-info.fr

这是我的nuxt.config.js

export default {
  // Disable server-side rendering: https://go.nuxtjs.dev/ssr-mode
  ssr: false,
  target: "static",

  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: "Accueil | MH info",
    htmlAttrs: {
      lang: "fr",
    },
    meta: [
      { charset: "utf-8" },
      { name: "viewport", content: "width=device-width, initial-scale=1" },
      { hid: "description", name: "description", content: "" },
      { name: "format-detection", content: "telephone=no" },
    ],
    link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }],
    script: [{ src: "https://kit.fontawesome.com/048c7a73f1.js/" }],
  },

  // Global CSS: https://go.nuxtjs.dev/config-css
  css: ["./css/general.css"],

  server: {
    port: 4000,
  },
};

这是我的package.json

{
  "name": "mh-info.fr",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "sass": "sass -w scss:css"
  },
  "dependencies": {
    "buttercms": "^1.2.9",
    "core-js": "^3.19.3",
    "nuxt": "^2.15.8",
    "sass": "^1.54.9",
    "vue": "^2.6.14",
    "vue-server-renderer": "^2.6.14",
    "vue-template-compiler": "^2.6.14",
    "webpack": "^4.46.0"
  }
}

【问题讨论】:

  • 通常,最初有一个 CI 流,然后开始编码会更安全,因为它会使错误更容易调试(因为增量方法)。所以,是的,我们在这里需要很多东西:nuxt.config.jspackage.json,你托管应用程序的地方,可能是一个公共 github 存储库,并且知道应用程序在构建后是否正常工作(本地)。
  • 我只是添加所有你问的东西。什么是 CI 流?
  • 一旦你推送了代码更改,就会发生 CI 流。因此它可以是 Gitlab 管道、Github 操作或由 devops 团队配置的任何东西来捆绑您的应用程序。当然,一个简单的yarn generate 也完全可以作为 CI(持续集成)。
  • 你好,这里有消息吗?仍然不想尝试 Vercel/Netlify?
  • 我已经试过了,但是文章没有加载(404页)。但是,当我在本地应用程序中执行 yarn start 时,一切正常。

标签: deployment nuxt.js


【解决方案1】:

有关我对您项目的cloned version 的最新更改的更新。

我实现了在这里正常工作:https://kissu-makes-great-sites.netlify.app/fr/tous-les-articles

主要结论是有很多事情需要修复/改进。
您没有像使用 Vue 那样编写应用程序(更不用说 Nuxt 方式)。

单个回复中包含的内容太多,因此如果您想更深入地解释/指导如何解决所有这些问题,我建议您ping me on Twitter, Discord or by email

PS:我说法语,在那里住了20年。 ??


您的应用程序与demonstrated here 一样运行良好(当然是通过/fr 路径)。
我不确定您为什么要为 OVHcloud 实例付费(上次我检查时,它只针对paid VPS,与免费静态应用程序无关)。

在这件事上,我尝试将它托管在 Netlify(免费托管)上。
它工作得很好,你可以试试yarn && yarn generate && yarn start,你会发现它在本地工作得很好。
出于测试目的,您可以尝试在此处上传dist目录:https://netlify.com/drop

你会得到和我一样的结果。仔细检查您是否没有任何 Adblockers 或类似的东西。

另外,我不确定所有这些是什么

但他们并没有真正使用 Vue 的反应系统,不确定这是否是整体需要的。
此外,您在这里使用的是仅 SPA 设置 (ssr: false + target: 'static'),我至少建议将 SSG 与 ssr: true + target: 'static' 一起使用,以获得 SEO + 静态生成内容的好处。
使用 SSG 在 Netlify 上托管仍然是免费的。

只有 SSR (ssr: true + target: 'server') 在 OVH IMO 上托管实际上是合乎逻辑的。

【讨论】:

  • 当我使用 yarn start 时,它可以工作,但是当我在 OVH 上部署它时,不行。当我使用 ssr true 时,我得到一个 ReferenceError : window is not defined。
  • 而且我更喜欢在 OVH 中使用主机。我有另一个 Nuxt 项目,部署在正常工作的 OVH 上 (yogi-dream.fr)
  • @MHinfo 是的,因为它会将您的 Nuxt 应用程序置于同构模式(在服务器和客户端中运行您的代码),因此为什么 window 未定义错误为 explained here。 querySelectors 在这方面没有帮助。如果你想为你的托管付费,你就去做。我仍然建议您回退到 SSG,尤其是对于此类网站。至于 OVH,因为你是法国人,所以你可以随时检查那个以获得调试线索:community.ovh.com/t/…
  • 我删除了 ssr false,它正在工作。现在 _nuxt 文件夹中的 js 文件返回 404 错误,而文件存在于此 url。
  • ssr is at true by default,因此通过删除它,您基本上将其设置为ssr: true。不过,这与我们的主要问题无关。让我们专注于尝试在 OVH 上部署它,因为它是您希望托管它的地方。你想要它,SPA-only 还是 SSG?如果您希望它为 SSG,则需要重构应用程序的某些部分,主要是带有 window 的部分。 @MHinfo
猜你喜欢
  • 2021-03-12
  • 1970-01-01
  • 2021-01-24
  • 2020-12-17
  • 2020-01-06
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多