GitHub部署Streamlit应用后HTML与CSS无法正常渲染求助
Streamlit部署GitHub后HTML样式失效的解决方法
问题根源
你代码里用了转义后的HTML字符串(比如<p>、")定义反馈样式,本地环境因调试模式逻辑宽松能自动解析,但部署到GitHub相关环境后,平台严格遵循HTML解析规则,转义字符会被当作普通文本处理,导致样式无法生效。
修正方案
直接使用原始HTML字符串,搭配st.markdown()的unsafe_allow_html=True参数渲染,这是Streamlit官方认可的自定义HTML/CSS方式。
修改后的核心代码
if st.session_state.user_answer == st.session_state.correct_answer: st.session_state.feedback = '<p style="background-color: green; padding: 10px; border-radius: 5px;"><b style="color: black;">Correct!</b></p>' else: st.session_state.feedback = f'<p style="background-color: lightcoral; padding: 10px; border-radius: 5px;"><b style="color: black;">Incorrect.</b> The correct answer is <b>{st.session_state.correct_answer}</b></p>' # 渲染反馈内容时执行这行 st.markdown(st.session_state.feedback, unsafe_allow_html=True)
额外注意事项
- 确认部署环境的Streamlit版本和本地一致,版本差异可能引发渲染逻辑不同。
- 不要使用过于复杂的CSS属性,Streamlit对部分CSS特性的支持在部署环境中有限。
内容的提问来源于stack exchange,提问作者pritesh
相关产品推荐
相关产品推荐

