You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android WebView拒绝应用样式表,网页加载后CSS失效求助

问题描述

WebView加载URL代码:

webviewContent.apply {
    with(settings) {
        javaScriptEnabled = true
        loadsImagesAutomatically = true
        useWideViewPort = true
        loadWithOverviewMode = true
    }
    webViewClient = tncWebClient
    val map: MutableMap<String, String> = HashMap()
    map["X-EMP"] = "xlg4R7"
    map["Content-type"] = "text/javascript"
    loadUrl(getWebUrl(), map)
}

LogCat错误信息:

chromium: [INFO:CONSOLE(0)] "Refused to apply style from 'https://****style.css' because its MIME type ('') is not a supported stylesheet MIME type, and strict MIME checking is enabled."

网站可正常加载,但CSS样式未生效,寻求解决办法。

解决方案

1. 移除请求头中的Content-type配置

你在请求头里强制设置了Content-type: text/javascript,这会让所有请求(包括CSS文件)都使用该MIME类型,导致服务器返回的CSS文件无法被WebView正确识别。直接删除这一项即可:

val map: MutableMap<String, String> = HashMap()
map["X-EMP"] = "xlg4R7"
// 移除该行:map["Content-type"] = "text/javascript"
loadUrl(getWebUrl(), map)

2. 检查服务器端MIME类型配置

如果移除请求头后问题仍存在,需要确认服务器返回CSS文件时,是否正确设置了Content-Type: text/css响应头。多数情况下,这类问题是服务器未正确配置静态资源的MIME类型导致的。

3. 临时关闭严格MIME检查(不推荐用于正式环境)

若上述方法都无效,可尝试关闭WebView的严格MIME检查以验证问题,但这会带来安全风险,仅建议临时测试:

with(settings) {
    // 保留原有设置
    javaScriptEnabled = true
    loadsImagesAutomatically = true
    useWideViewPort = true
    loadWithOverviewMode = true
    
    // 关闭严格MIME检查相关设置
    allowFileAccess = true
    @Suppress("DEPRECATION")
    allowUniversalAccessFromFileURLs = true
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
    }
}

内容的提问来源于stack exchange,提问作者Renz Manacmol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:52:55