【发布时间】:2021-10-09 18:35:41
【问题描述】:
我需要使用 laravel 和 nuxtjs 开发一个网站。
据我所知,SSR 模式是 nuxtjs 的高级功能之一,但它需要运行 nuxt 服务器。换句话说,我们需要像nginx一样在服务器上部署laravel,并且必须使用npm run start来运行nuxt服务器。如果我们使用 SPA 模式,nuxt 将静态页面生成到 dist 目录中,我们可以简单地将其合并到 laravel 项目中,一切都完成了。我们不需要运行额外的服务器。
这是我目前的看法。我不确定这是否属实,所以我无法决定选择哪一个。首先,我不确定哪个更好。其次,我不确定 SSR 模式是否真的需要运行额外的服务器。
我想听取专家的建议并做出决定。如果您对此提出建议,我将不胜感激。提前致谢。
【问题讨论】:
-
你的前提不正确。 SSR 和 SPA 并不相互排斥。 SPA 是单页应用程序,这意味着您使用客户端“路由器”在页面之间进行转换,而无需在服务器中发出请求。 SSR 意味着有一个服务器将预渲染应用程序 HTML,因此它可以在初始加载时由浏览器加载,并且用户(和网络爬虫)不必在看到页面之前等待 JS 到达。您显然可以同时使用两者,并且都需要某种服务器才能运行。 SSR 需要一个可以执行 JS 的服务器,而 SPA 需要一个服务器来提供 HTML
-
谢谢。这是否意味着我们需要为 SSR 模式运行额外的服务器?喜欢
npm run start? -
这两种情况都需要服务器。但是,是的,如果您有 SSR,您可能需要专门的 node.js 服务器(因此使用 npm run start),而在您只有 SPA 的情况下,您只需要“编译”一次 javascript 然后提供它使用更基本的服务器,例如一个 apache 网络服务器,甚至是一个 AWS S3 存储桶。此外,当您使用 SSR 时,在编写代码时可能需要考虑一些额外的事情,例如
window全局可能并不总是可用,即当代码在服务器端呈现时 -
谢谢。那是一清二楚。我需要将编译后的内容合并到 laravel 项目中(Laravel 部署在 nginx 服务器上)。我还需要运行节点服务器吗?对于 SSR 模式?
-
这是一个固执己见的问题,但我不敢标记它,因为我去过那里,我知道这是一个非常重要的决定,需要专业知识。