最近在项目中尝试使用Nuxt.js进行SSR改造,踩了不少坑,记录一下。首先配置nuxt.config.js时,我错误地将target设置为"static",导致无法正常服务端渲染。正确的做法是设置为"server"。
关键问题出现在路由配置上,由于项目原有前端路由结构复杂,直接迁移导致部分页面404。解决方法是使用通配符路由和动态导入:
export default {
router: {
extendRoutes(routes, resolve) {
routes.push({
name: 'dynamic',
path: '/dynamic/*',
component: resolve(__dirname, 'pages/dynamic.vue')
})
}
}
}
性能优化方面,通过分析发现首屏加载时间过长。使用webpack-bundle-analyzer分析打包结果,发现vendor包过大。通过调整babel配置和按需引入组件有效减小了包体积。
部署时遇到Nginx配置问题,需要正确设置代理转发和缓存策略。最终通过添加以下配置解决:
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
目前项目运行稳定,SEO优化效果明显,首屏加载时间从原来的3.2秒优化到1.8秒。

讨论