Vue.js 什么';这是target:&x27;静态';和目标:';服务器';在Nuxt 2.14通用模式下?
在最新版本的Nuxt(2.14)中,他们引入了一种优化方法,用于在不更改代码的情况下构建应用程序(大幅提高构建时间) 我在jamstack中创建网站,使用Vue.js 什么';这是target:&x27;静态';和目标:';服务器';在Nuxt 2.14通用模式下?,vue.js,static,nuxt.js,netlify,jamstack,Vue.js,Static,Nuxt.js,Netlify,Jamstack,在最新版本的Nuxt(2.14)中,他们引入了一种优化方法,用于在不更改代码的情况下构建应用程序(大幅提高构建时间) 我在jamstack中创建网站,使用numxt generate在netlify上部署,直到现在,还使用target:'server'。我尝试了新的target:“static”以利用这一新功能,但我的代码不会生成,因为在这种模式下,应用程序似乎无法访问this.$route以生成动态页面 所以,我的问题是:这两者有何不同?当我将目标切换到我必须注意的事项时?更新: 根据调查结果
numxt generate
在netlify上部署,直到现在,还使用target:'server'
。我尝试了新的target:“static”
以利用这一新功能,但我的代码不会生成,因为在这种模式下,应用程序似乎无法访问this.$route
以生成动态页面
所以,我的问题是:这两者有何不同?当我将目标切换到我必须注意的事项时?更新: 根据调查结果,
模式:“通用”模式和模式:“spa”模式被弃用,取而代之的是ssr:true
和ssr:false
完全静态仅适用于目标:'static'
和ssr:true
(不推荐使用的模式的对应项:'universal'
)。ssr:true
是默认值。ssr:false
是不推荐使用的模式:“spa”
的对应项,不能与目标:“static”
一起使用。
原始答案:
目标
将target
属性视为一个托管环境可能会有所帮助——无论您需要服务器还是CDN提供的静态文件都足以满足您的场景。尽管它被称为target:“server”
,但这并不意味着你的应用程序是服务器端呈现的(请参见下面的模式)
在生产环境中使用static
目标时,您只需要一个将为静态文件提供服务的CDN。这些静态文件是在构建时准备的,并且是“最终”的(直到下一个具有更新内容或代码的构建)。在这种情况下,不需要任何服务器(CND和构建服务器除外,它们可能会在您的CI管道中)
目标与模式
另一方面,当使用服务器
目标时,您的生产应用程序将需要一个服务器环境,在该环境中,客户端请求的响应将被合成并发送。这意味着有了更新的内容,就不需要重新构建应用程序。此内容是在请求服务器后编写的。这适用于-universal
和spa
模式。使用universal
模式,您的应用程序将在服务器端呈现。相比之下,与spa
模式相比,没有服务器端呈现(只有客户端导航),整个应用程序作为单页应用程序运行
服务器与静态目标
对于新手来说,决定使用服务器端渲染还是静态渲染可能有点棘手。一个可能有助于您做出决策的好问题是,您是否需要为每个页面/文档/内容项提供不同的内容,以适应不同的用户/环境。如果是这样,您可能应该使用目标服务器
,否则静态
每种方法都有其优缺点,如服务器需求、安全性、速度、CI管道/构建过程、SEO、价格等。正确的选择取决于您的用例
正如您正确提到的,从版本2.13
中有两个可用的部署目标。这些是server
和static
旧的方法有一些问题和困难,主要是客户端通过asyncData
和fetch
函数请求API来进行导航。因此,生成的站点不是纯粹的静态站点。描述了旧方法的所有缺点
使用新的static
target(同时使用强制universal
模式)方法,numxt generate
命令将预呈现所有HTML页面并模拟异步数据请求。这次,旧的asyncData
和fetch
没有向客户端请求API。这已在构建期间执行
关于路线。nuxt的爬虫程序可能没有自动检测到提到的路由,您应该使用generate.routes
属性手动生成它们
从“axios”导入axios
导出默认值{
生成:{
路线(){
返回axios.get('https://my-api/users)。然后(res=>{
返回res.data.map(用户=>{
返回“/users/”+user.id
})
})
}
}
}
嘿!我找到你的文章了!除息的