Vue.js Nuxt生成不';t用内容填充生成的HTML文件
我有一个基于外部无头API(JSON)的Nuxt项目,它将内容提供给应用程序。当我尝试运行npm run generate时,Nuxt将创建一个dist文件夹,其中包含文件夹中的所有路由,并用index.html文件填充每个路由。但是,这些HTML文件中没有任何源于API的内容。预期的行为是我能够看到静态生成的内容 有人能告诉我为什么预渲染我的应用程序不起作用吗?我怀疑我的numxt.config.js有问题:Vue.js Nuxt生成不';t用内容填充生成的HTML文件,vue.js,axios,nuxt.js,server-side-rendering,Vue.js,Axios,Nuxt.js,Server Side Rendering,我有一个基于外部无头API(JSON)的Nuxt项目,它将内容提供给应用程序。当我尝试运行npm run generate时,Nuxt将创建一个dist文件夹,其中包含文件夹中的所有路由,并用index.html文件填充每个路由。但是,这些HTML文件中没有任何源于API的内容。预期的行为是我能够看到静态生成的内容 有人能告诉我为什么预渲染我的应用程序不起作用吗?我怀疑我的numxt.config.js有问题: generate: { routes() { // Routes
generate: {
routes() {
// Routes from headless CMS
const pages = axios.get(`${api}/routes.json`).then((res) => {
return res.data.data.map((item) => {
return item.route
})
})
// External API with vacancies
const vacancies = axios
.get('https://api.external.website')
.then((res) => {
return res.data.jobs.map((item) => {
return '/careers/vacancies/' + item.id
})
})
// Combine both routes
return Promise.all([pages, vacancies]).then((values) => {
return [...values[0], ...values[1]]
})
}
}
我不确定它为什么会这样(我也想理解为什么),但这是我发现的一个示例解决方法
回到笑话
笑话ID:{{$route.params.ID}
joke ID
是从外部API获取的,但是由于numxt generate
已经为所有动态文章页面创建了路由,并将其ID设置为参数,因此我可以轻松地从路由中提取ID
<template>
<div>
<nuxt-link to="/jokes">Back To Jokes</nuxt-link>
<hr />
<small>Joke ID: {{ $route.params.id }}</small>
</div>
</template>