Muse UI遇到的坑

写在前面:我只是一个前端小白,文章中的提到可能会有不足之处,仅提供一个参考。如有不完善的地方,欢迎各位大佬指出,但愿对你有帮助!css

故事背景是这样的,最近作一个Vue项目,使用到 Muse UI 组件库。刚开始时想着能用 Material Design 设计规范是一件很是开心的事情,而后事情并不会一直美好下去。。。html

项目自己须要用到 Material Icon 字体包,但因为一些众所周知的缘由,国内网络没法访问一些外网。因而采用了本地化部署字体的方法。下载 Material Icons 字体包,而后放到 static 静态文件夹中,再从 index.html 引入。前端

问题来了:git

状况一:在系统首页(路由是:"/"),能够正常读取到字体包,因此页面渲染成功,没问题的(图一)。
状况二:当进入其余路由(例如路由:"/trip/history",历史行程),刚进入页面一样是渲染成功。当此时对页面从新加载时,就会出现错误,字体图标找不到,只显示了的字体图标名称(图二)。

图一 系统首页
图一 系统首页


图二 历史行程
图二 历史行程github

对于这个 Bug,大概困扰了我一个多月。一度很无奈解决不了,甚至想过放弃使用 Muse UI。直到今天才发现问题所在,而后就解决了。

按照官方文档的方法引入(最后就在这里解决的,就是一个退格键的事):服务器

// index.html
<link rel="stylesheet" href="./static/fonts/material-icons/material-icons.css"/>

这个 Bug 是在控制台偶然 Warning:Resource interpreted as Stylesheet but transferred with MIME type text/html: "URL(这个URL是关于 Material Icon 的路径)",才意识到 URL 错了。网络

首页
首页


历史行程
历史行程字体

(1)仔细对比路径以后发现了问题,首页的 Requset URL 是正确的,而历史行程页面是错误的。而后就锁定到 index.html 中引入 Material Icon 的 <link/> 标签。
(2)跟官方文档对比后,好像没发现有错。因为 index.htmlstatic 文件夹是同级目录下的,因此 href="./static/fonts/material-icons/material-icons.css" 按道理应该是没错的,官方文档也这么写,但实际上确实出错了。

因而乎......我把路径改为项目根目录,而后就好了,以下。ui

// index.html
<link rel="stylesheet" href="/static/fonts/material-icons/material-icons.css">

在本地肯定没问题后,再打包项目放到云服务器上,看看可否读取到静态资源,发现也正常。spa

回想整个过程,最主要是由于没发如今不一样页面下的 Request URL 不一致,且其中一个是不正确的。发现了这个问题,事情就好办了。固然还有个问题没明白:为何 <link rel="stylesheet" href="./static/fonts/material-icons/material-icons.css"> 会不行(一个前端小白的疑问?),迟点再上 GitHub 向大佬提个 Issue 找找缘由,到时在更新一下文章。

因为这个 Bug 困扰我过久了,就写篇文章记录一下。最后仍是那句话:我只是一个前端小白,有什么不足之处欢迎指出!

相关文章
相关标签/搜索