【发布时间】:2022-08-20 07:52:53
【问题描述】:
我想通过 Nuxt 3 构建一个仅限客户端的应用程序,正如文档中描述的 here 我已将 ssr: false 添加到我的 nuxt 配置中。
然后我使用nuxi build 命令构建应用程序,但它仍然说它需要使用节点运行。
我继续运行nuxi generate,就像我通常对静态托管所做的那样。
根据生成命令的输出,我应该能够将公用文件夹部署到任何静态虚拟主机。但是,当我这样做时,我只会得到一个完全白的页面。
我尝试在没有ssr: false 的情况下运行相同的命令,这确实会呈现一个页面,但这会导致我的任何 javascript 都无法工作。
编辑:最小的可重现示例
所以我刚刚从 nuxt 文档中关注了these steps。
除了编辑我的 nuxt 配置之外,没有进行任何代码更改,我运行了 generate。
这就是我的 nuxt 配置现在的样子;
import { defineNuxtConfig } from \'nuxt\'
// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
ssr: false,
})
然后我按照 cmets 中的建议运行npx serve .output/public,这在本地似乎工作得很好。
然后我将公用文件夹复制到我的网络服务器,但同样的问题仍然存在,只是一个白屏可见。
也许我应该再澄清一下我的问题:是否仍然可以托管 nuxt SPA,而无需在服务器上运行节点进程,就像之前在 nuxt 2 中一样?
现在我刚刚切换到服务器呈现的应用程序,因为我没有看到其他解决方案。
-
如果您想运行 SPA,
generate就足够了。然后,您可以尝试使用npx serve .output/public之类的内容在本地运行它。如果它在本地工作,则将其部署到 Netlify。否则,如果它不起作用,则意味着这不是构建问题,而是代码问题。因此,那时将需要一些相关的 sn-ps(甚至是minimal reproducible example)。 -
嗨@kissu 感谢您的快速回复!我刚刚从头开始创建了一个新的 nuxt 3 项目并在本地运行
npx serve .output/public。这实际上工作得很好,但是,当我将.output/public文件夹复制到我的网络服务器时,我只是像以前一样看到一个白屏。现在我已经切换到服务器渲染的应用程序,它确实可以按预期工作,但我想知道是否仍然可以在不在 Web 服务器上运行节点进程的情况下部署 SPA? -
对于仅 SPA 设置,您不需要 Node.js 实例。同时,您仍然需要为此使用轻量级服务器(处理安全、协议、HTTP 调用等...),您不能只在浏览器中使用
file://协议打开它。好消息,大多数地方都免费为您提供。试着把你的文件夹放在这里app.netlify.com/drop -
您使用的是什么主机,也许是 nginx 容器?
-
@Dav3rs 我正在使用 nginx。但是我切换到服务器端渲染并使用 nginx 创建了一个反向代理。
标签: single-page-application server-side-rendering nuxtjs3