【发布时间】:2020-11-04 16:29:11
【问题描述】:
我想拥有可以复制和粘贴的 url,因此在 nuxt.config 中从 spa 切换到 Universal。但是我收到此错误消息“未定义文档”。然后我用谷歌搜索这个answer 说我应该使用<no-ssr> 元素。
然而,在我的 index.vue 上使用它之后,我仍然得到同样的错误。谁能帮帮我?
抱怨文档丢失的是 node_modules/aws-amplify-vue/dist/aws-amplify-vue.common.js。
目前要测试我的 index.vue 如下:
<template>
<v-layout column justify-center align-center>
<div>
<no-ssr placeholder="loading...">
<div>hello</div>
</no-ssr>
</div>
</v-layout>
</template>
如果这是导致此问题的原因,我在项目中还有其他页面没有 <no-ssr>。
【问题讨论】:
-
使用
client-only而不是no-ssr -
你也可以用
if(process.server)检查它是否在服务器端 -
如果它是一个插件,那么您可以将该特定插件配置为不作为 ssr 运行。 export default { plugins: [ { src: '~/plugins/both-sides.js' }, { src: '~/plugins/client-only.js', mode: 'client' }, // 仅在客户端{ src: '~/plugins/server-only.js', mode: 'server' } // 仅在服务器端 ] }
-
感谢 cmets。然而
client-onlyand 添加模式并没有解决我的问题。尝试了“客户端”和“服务器”并添加了 ssr: falseplugins: [{ src: '~plugins/aws.js', mode: 'client', ssr: false }] -
搜索了更多,它看起来与this 的问题相同。但没有解决方案:/