Gandi.net部署的MediaWiki CSS加载异常:非主页面无样式,MIME类型错误
解决MediaWiki CSS加载MIME类型错误的方案
我之前碰到过好几次这种MediaWiki样式加载的问题,尤其是在Gandi这类托管平台上,核心原因基本都是路径配置或者服务器MIME头的问题,给你几个一步步排查的方案:
检查LocalSettings.php的核心路径配置
先打开你的LocalSettings.php文件,重点确认$wgServer和$wgScriptPath这两个参数是否匹配你的实际部署路径。比如你的wiki放在域名根目录下的wiki文件夹里,正确的配置应该是:$wgServer = "http://jollof.mariadavydenko.com"; $wgScriptPath = "/wiki";很多时候路径写错了,会导致
load.php返回的不是CSS代码,而是HTML错误页面(比如404),浏览器检测到MIME类型不匹配,就会触发“Refused to apply style”的错误。直接验证load.php的返回内容
把控制台里的那个load.php完整链接复制到浏览器地址栏打开,看看实际返回的是什么:- 如果返回的是正常的CSS代码,那问题出在服务器的MIME类型配置上,需要确保PHP处理
load.php请求时,正确发送Content-Type: text/css的响应头。 - 如果返回的是404页面、跳转页面或者其他非CSS内容,那肯定是路径配置有误,回到第一步修正
$wgScriptPath和$wgServer。
- 如果返回的是正常的CSS代码,那问题出在服务器的MIME类型配置上,需要确保PHP处理
检查服务器的重写规则(Apache/Nginx)
如果你用了URL重写(比如伪静态),错误的规则可能会干扰load.php的请求:- 对于Apache,确保
.htaccess里的规则没有拦截load.php,推荐的配置应该包含:RewriteEngine On # 让load.php请求直接通过,不被重写 RewriteRule ^wiki/load.php - [L] # 其他MediaWiki默认重写规则... - 对于Nginx,要在配置文件里单独处理
load.php的请求,避免被其他规则覆盖:location ~ ^/wiki/load.php { fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 替换成你的PHP-FPM路径 include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
- 对于Apache,确保
清除MediaWiki缓存
有时候旧的缓存会残留错误的配置信息,登录你的wiki后台,进入“维护”板块,点击“清除缓存”;或者直接手动删除服务器上MediaWiki目录下cache文件夹里的所有文件(注意不要删除文件夹本身)。
内容的提问来源于stack exchange,提问作者user3462317
相关产品推荐
相关产品推荐

