我正在用NuxtJs创建一个简单的演示应用程序。主页显示不经常更改的静态内容。还有一种显示用户列表的方法:/users。其中一个用于显示用户的详细信息:/user/id。
现在我的问题是,nuxt generate和nuxt build有什么区别?我应该用哪一种?
我认为nuxt generate页面不会呈现像users和user/id这样的动态路由,对吗?如果我是对的,那么generate命令将只为主页生成一个预渲染的HTML。所以使用generate总是比使用build更好,对吗?
发布于 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来帮助您生成动态路由。
对于SPA回退,在生成配置中,为SPA回退定义一个自定义页面:
export default {
generate: {
fallback: "custom_sap_fallbackpage.html"
}
}配置部署中未知路由的回退页面,例如,在Nginx中:
location / {
try_files $uri /custom_sap_fallbackpage.html;
}nuxt build将为您建立一个SSR站点。html在服务器上呈现并发送到客户端。它在服务器上增加了一些工作负载,可能不是那么容易部署,但主要的好处是SEO。对于一些使用低端设备或互联网连接缓慢的用户来说,也许你的站点会比SPA模式下的访问更好。
基本上,你需要考虑:
用于静态的nuxt generate。具有动态路由的站点的nuxt generate、nuxt build或spa模式。
水疗不会得到任何SEO。
对于静态托管服务,只有nuxt generate或spa模式才能工作。
nuxt build是给你的,用它吧。
发布于 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中
generate: {
routes: () => {
return [
'/posts/1'
]
}
}您还可以在这里使用axios来生成http请求和返回数组。甚至从文件导出默认数组并将其包含在这里,在这里组合所有动态路由。这是一次作业,但是如果在后端添加新的crud,那么在执行nuxt生成时再添加一个请求,这应该在nuxt中描述。
所以这就是为什么我更愿意花更多的钱买一个服务器,但是要托管一个Universal,而不是静态生成的,因为在我个人看来,这并不能使它对使用API真的很好,但无论如何,它是一个很好的未来。
发布于 2019-08-27 06:19:25
当您的网站更新数据时,您通常不需要使用npm generate构建您的网站静态、快速加载和搜索引擎优化友好的搜索引擎,如果您的项目有数据NuxtJS从数据库下载所有数据并将数据静态地更改为.json文件。
如果您的网站从数据库加载数据,则必须使用npm build从数据库动态加载数据。在没有客户端渲染的单一页面上使用"spa“模式,在nuxt.config.js中使用”通用“模式用于客户端呈现。
对于动态路由,请使用npm build更改数据库中的路由参数。
https://stackoverflow.com/questions/57651428
复制相似问题