为什么live-server会向网页注入JS代码?该如何解决?
问题原因
live-server 默认开启了热重载功能,你看到的注入代码是其实现热重载的内置逻辑,属于正常的设计行为,并非异常故障。
这段代码的核心作用是:
- 和本地启动的live-server服务建立WebSocket长连接
- 监听服务端推送的文件变更消息,收到重载指令时自动刷新页面,收到CSS更新指令时自动重载页面样式文件,不需要手动刷新浏览器,提升开发效率
默认情况下这段代码不会干扰你的grid布局逻辑,如果你遇到布局受影响的情况,一般是CSS热重载过程中样式替换的短暂时序问题。
解决方案
- 如果你不需要热重载功能,启动live-server时添加
--no-live-reload参数即可,示例启动命令:live-server --no-live-reload [你的项目目录],添加参数后服务端不会再向页面注入这段JS代码。 - 如果你需要保留热重载功能,又不想它影响grid布局效果:可以将grid相关样式直接写在HTML的
<style>内嵌标签中,或者调高grid样式选择器的优先级,避免CSS重载过程中出现短暂的样式失效问题。 - 无需担心线上环境受影响:这段注入代码仅存在于本地开发的live-server服务场景中,项目打包上线部署到正式服务器后,不会存在这段注入逻辑,完全不会影响线上页面的正常运行。
内容的提问来源于stack exchange,提问作者dushimimana fabrice
相关产品推荐
相关产品推荐

