MS Bot Framework移除图片上传按钮:botchat.scss修改无效解决方案
我之前也碰到过类似的情况——修改了botchat.scss但执行npm run prepublish后毫无效果,大多是编译流程没走对或者引用的样式文件没更新导致的。下面是一套具体的操作步骤,完全不用直接改动botchat.css:
第一步:精准修改botchat.scss中的目标样式
先打开浏览器开发者工具,选中聊天框里的图片上传按钮,查看它对应的CSS类名(比如旧版BotChat里是.wc-send-file-button,新版可能是.wc-message-input__file-upload)。找到项目中的botchat.scss文件(通常在src/scss目录下),添加以下样式:.wc-send-file-button { display: none !important; }(把类名换成你从开发者工具里查到的实际类名,
!important是为了确保覆盖默认样式)第二步:确认编译脚本并手动触发编译
打开项目的package.json文件,检查scripts字段里的prepublish和build命令。正常来说,prepublish应该会调用编译scss的脚本,如果没有的话,你可以手动执行scss编译命令:node-sass src/scss/botchat.scss dist/botchat.css这里的路径要根据你的项目结构调整——第一个路径是你修改后的
botchat.scss位置,第二个路径是你要输出编译后css的目录(比如dist文件夹)。第三步:替换项目中的样式文件引用
这一步很关键!很多人改了scss却没生效,就是因为项目还在引用官方默认的botchat.css或者旧的编译文件。找到你项目中引入BotChat样式的地方(一般是HTML文件或者React组件的样式引入),把原来的引用换成你刚编译好的botchat.css路径。比如:
把<link rel="stylesheet" href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css">改成
<link rel="stylesheet" href="./dist/botchat.css">第四步:清除缓存并验证效果
最后,强制刷新浏览器(Ctrl+Shift+R)清除缓存,同时重启你的本地开发服务器,确保新的样式文件被正确加载。这时候再打开聊天界面,图片上传按钮应该就消失了。
内容的提问来源于stack exchange,提问作者prem chopra

