如何修改MS Bot Framework消息字体?修改后未生效求排查
解决BotChat字体未生效问题
看起来你的字体没生效主要是路径错误和几个细节问题,咱们一步步排查解决:
1. 字体文件路径不正确
你的botchat.scss存放在src/scss/目录下,而字体文件放在了根目录。SCSS里的url()是相对于当前SCSS文件的路径,直接写url('mrkflthn-webfont.woff2')会让浏览器去src/scss/目录下找字体,自然找不到。
推荐改成绝对路径(更可靠,适配根目录资源):
@font-face{ font-family: 'mark'; font-weight: normal; /* 这里去掉引号,CSS属性值不需要引号 */ src: url('/mrkflthn-webfont.woff2') format('woff2'), url('/mrkflthn-webfont.woff') format('woff'); }
也可以用相对路径(从scss目录往上跳两级回到根目录):
src: url('../../mrkflthn-webfont.woff2') format('woff2'), url('../../mrkflthn-webfont.woff') format('woff');
2. 确认SCSS已编译为CSS
你的页面引用的是Public/css/botchat.css,但修改的是src/scss/botchat.scss。如果没有把SCSS编译成对应的CSS文件,你的修改根本不会被页面加载到:
- 打开
botchat.css文件,检查是否包含你新增的@font-face规则和字体样式 - 如果用构建工具(比如Gulp、Webpack),确保执行了编译命令;如果手动编译,重新生成一次CSS文件
3. 排查样式优先级与字体加载状态
- 打开浏览器开发者工具(F12),在Network面板搜索字体文件名,看是否返回404(如果是,说明路径还是错误的)
- 在Elements面板选中聊天消息元素,查看
font-family是否被正确设置为mark,有没有被其他更高优先级的样式覆盖(比如带!important的规则) - 确认
font-weight: normal;没有加引号,引号会导致浏览器无法识别字体权重规则
4. 验证字体是否成功加载
可以在开发者工具的Application面板(Chrome)里查看Fonts选项,确认mark字体是否被成功加载到浏览器中。
修改完这些步骤后,刷新页面应该就能看到字体生效了。
内容的提问来源于stack exchange,提问作者prem chopra
相关产品推荐
相关产品推荐

