首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为动态网站生成的NuxtJs?

为动态网站生成的NuxtJs?
EN

Stack Overflow用户
提问于 2019-08-26 03:24:13
回答 3查看 4.9K关注 0票数 6

我正在用NuxtJs创建一个简单的演示应用程序。主页显示不经常更改的静态内容。还有一种显示用户列表的方法:/users。其中一个用于显示用户的详细信息:/user/id

现在我的问题是,nuxt generatenuxt build有什么区别?我应该用哪一种?

我认为nuxt generate页面不会呈现像usersuser/id这样的动态路由,对吗?如果我是对的,那么generate命令将只为主页生成一个预渲染的HTML。所以使用generate总是比使用build更好,对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-07 02:34:37

universal模式下,nuxt generate用于静态站点生成。nuxt build是用于SSR站点的。

在2.13.0中,Nuxt引入了一个target: static特性,确保检查

静态站点具有最好的性能,并且很容易在nginx或其他服务(如Netlify )上部署。

默认情况下,nuxt generate只呈现静态主页和/users页面,而不是动态/user/:id路由。

但是您可以使用配置 nuxt来帮助您生成动态路由。

  1. 如果您有一组固定的用户,则可以使用生成路由函数。
  2. 如果用户数据不断变化,您可以在动态路由上配置 nuxt返回到SPA。但你不能得到任何利益SEO的动态路线。

对于SPA回退,在生成配置中,为SPA回退定义一个自定义页面:

代码语言:javascript
复制
export default {
  generate: {
    fallback: "custom_sap_fallbackpage.html"
  }
}

配置部署中未知路由的回退页面,例如,在Nginx中:

代码语言:javascript
复制
location / {
    try_files $uri /custom_sap_fallbackpage.html;
}

nuxt build将为您建立一个SSR站点。html在服务器上呈现并发送到客户端。它在服务器上增加了一些工作负载,可能不是那么容易部署,但主要的好处是SEO。对于一些使用低端设备或互联网连接缓慢的用户来说,也许你的站点会比SPA模式下的访问更好。

基本上,你需要考虑:

  1. 网站的内容是静态的还是不断变化的?

用于静态的nuxt generate。具有动态路由的站点的nuxt generatenuxt buildspa模式。

  1. 你需要SEO吗?

水疗不会得到任何SEO。

  1. 你是如何部署网站的?

对于静态托管服务,只有nuxt generatespa模式才能工作。

  1. 你的网站充斥着js代码,你想要为互联网慢和设备慢的用户提供最好的性能。或者SEO是重要的,你的网站有很多动态内容。

nuxt build是给你的,用它吧。

票数 6
EN

Stack Overflow用户

发布于 2019-08-27 10:34:39

Nuxt中有三种不同的部署和生成选项。

通用模式

在这种模式下,您构建项目,然后将其传送到node.js服务器,第一个视图总是动态地呈现在服务器上,然后变成SPA,并在客户机中工作。这对于SEO和消费API来说都是很棒的,但是您不能将它上传到任何主机上,例如在共享VPS上。

所以这里需要Node.js主机。

SPA

那么,基本上Vue.js的默认工作方式,几乎没有SEO在任何,你可以上传到一个共享的VPS主机,因为它只是一个index.html和build.js文件,它完全在客户端(在浏览器中)工作。

我们可以在这里进行静态托管。

静态应用程序

这就是Nuxt.js的亮点所在,因为此模式将为您在dist文件夹中的每个路由生成一个index.html文件和相应的js/css资产,然后您只需将这些大量文件上传到任何主机,这里就不需要服务器了,因为您的第一个视图已经预呈现,而不是节点服务器应该预先呈现第一个视图的位置。所以你在这里得到了SSR,据我所知,你的主要演唱会是如果你也得到了SPA,这是最好的部分,因为在通用模式,在第一个请求后,应用程序继续在SPA模式,这有多大,嗯?

无论如何,有一些事情你应该考虑,如果你想要为动态内容生成index.html,你需要做一些事情,这是一个情绪杀手。您需要将它添加到nuxt-config.js

代码语言:javascript
复制
generate: {
    routes: () => {
      return [
        '/posts/1'
      ]
    }    
  }

您还可以在这里使用axios来生成http请求和返回数组。甚至从文件导出默认数组并将其包含在这里,在这里组合所有动态路由。这是一次作业,但是如果在后端添加新的crud,那么在执行nuxt生成时再添加一个请求,这应该在nuxt中描述。

所以这就是为什么我更愿意花更多的钱买一个服务器,但是要托管一个Universal,而不是静态生成的,因为在我个人看来,这并不能使它对使用API真的很好,但无论如何,它是一个很好的未来。

票数 2
EN

Stack Overflow用户

发布于 2019-08-27 06:19:25

当您的网站更新数据时,您通常不需要使用npm generate构建您的网站静态、快速加载和搜索引擎优化友好的搜索引擎,如果您的项目有数据NuxtJS从数据库下载所有数据并将数据静态地更改为.json文件。

如果您的网站从数据库加载数据,则必须使用npm build从数据库动态加载数据。在没有客户端渲染的单一页面上使用"spa“模式,在nuxt.config.js中使用”通用“模式用于客户端呈现。

对于动态路由,请使用npm build更改数据库中的路由参数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57651428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档