-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何本地预览前端应用的产物 dist 文件 #262
Labels
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
前言
在一个 Nuxt3 新项目中需要分析框架默认集成的首屏开启 preload 和 prefetch 优化方案而引起页面初始化加载从白屏到最终加载页面期间的图标、字体页面不正常闪动的问题。
prefetch 和 preload 是浏览器提供的两种资源预加载技术,它们可以预先请求浏览器可能需要的资源,并将这些资源缓存到本地,以便在页面需要时能够更快地获取,从而显著提高网站性能,优化用户体验。这些资源可以是文本文件、图像、音频或视频等各种类型的文件。
预加载属性 preload 与 prefetch 区别
在面对这个场景的问题最有效的分析思路的方案莫过于直接预览 dist 产物,本地修改资源快速定位问题从而确定修改方案。
本例子中的关键 页面 css 文件被 prefetch 在空闲阶段加载,导致了页面闪动的问题。
本地预览
dist
目录需要启动一个 HTTP 服务器来访问 (除非你已经将publicPath
配置为了一个相对的值),所以以file://
协议直接打开dist/index.html
是不会工作的。在本地预览生产环境构建最简单的方式就是使用一个 Node.js 静态文件服务器,例如 serve:配置了 publicPath 启动后的现状
这里采用 serve ,默认 3000 端口打开。
代理重定向(这里使用 whistle), 解决静态资源 404 的资源重定向地址:
静态资源可以访问了,但是这个时候会发现页面用到的接口状态为 405 不可访问。
代理配置兼顾资源与网络请求:
最终效果:
经验总结
要解决单页应用配置了 publicPath 而导致的本地预览 dist 包资源丢失的问题,可使用代理直接将测试环境或线上环境的访问地址代理到本地启动 dist 包的所在端口即可解决。
参考
The text was updated successfully, but these errors were encountered: