hpd1308 2023-06-26 14:16 采纳率: 16.7%
浏览 82
已结题

vue打包部署到服务器,后端修改了index.html,导致一刷新就重新加载index.html

vue项目打包后部署到服务器,服务端动态往index.html写入了script,在组件中刷新页面会重新进入index.html后进入了默认的组件,而不是当前组件,是什么原因造成的呢?

  • 写回答

11条回答 默认 最新

  • shxs875 2023-06-26 14:26
    关注
    获得0.30元问题酬金

    这是因为在单页应用中,Vue 路由在浏览器端(客户端)进行管理,而动态往 index.html 中写入的 script 标签实际上是在服务端加载,这意味着在客户端重新进入 index.html 时,控制权已经交给了服务端,此时客户端的 Vue 实例已经被卸载,因此无法正确地匹配到当前路由所对应的组件。

    要解决这个问题,一种比较通用的做法是在服务端返回 index.html 时,将当前的路由信息一并返回,并由客户端在重新进入 index.html 的时候,根据路由信息重新初始化 Vue 实例和对应的组件。具体可以通过检查浏览器地址栏中的路由信息,然后通过 Vue Router 的 push 或 replace 方法来进行路由转发。如果想要更加高效的实现,可以考虑使用服务端渲染 (SSR) 技术来进行解决。

    评论

报告相同问题?

问题事件

  • 系统已结题 7月4日
  • 创建了问题 6月26日

悬赏问题

  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目
  • ¥15 根据时间在调用出列表
  • ¥15 FastReport.community 编辑,table只显示“每页”最顶部和底部横线
  • ¥15 R 包chipseeker 安装失败
  • ¥15 Veeam Backup & Replication 9.5 还原问题
  • ¥15 vue-print-nb
  • ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
  • ¥20 利用ntfy实现短信推送
  • ¥30 如何用VBA代码写抽取TRIBON M3数据库的模型信息