![CSS 文件中与协议相关的 URL 正在被覆盖](https://linux22.com/image/661967/CSS%20%E6%96%87%E4%BB%B6%E4%B8%AD%E4%B8%8E%E5%8D%8F%E8%AE%AE%E7%9B%B8%E5%85%B3%E7%9A%84%20URL%20%E6%AD%A3%E5%9C%A8%E8%A2%AB%E8%A6%86%E7%9B%96.png)
我有这个代码:
<?php
header('Content-Type: text/css; charset=utf-8');
?>
a.logo{background:url(//webzina.net/img/logo.png) no-repeat 100% 0}
在本地(PHP 版本 5.3.5),我得到:
a.logo{background:url(//webzina.net/img/logo.png) no-repeat 100% 0}
但远程(PHP 版本 5.3.21)我得到:
a.logo{background:url(http://webzina.net/img/logo.png) no-repeat 100% 0}
如果我评论标题行,远程我会得到与本地相同的结果。
最糟糕的是,我在远程使用 https,因此“http:”会造成麻烦。
有人能告诉我哪个 apache/php 设置干扰了协议相对 URL 或者为什么会发生这种情况吗?
答案1
使用 Apache 的 mod_info (http://httpd.apache.org/docs/2.2/mod/mod_info.html) 查看 Apache 配置的输出。然后在其中搜索 text/css,看看是否有任何指令指定应该对 CSS 文件执行某些操作。例如,您可能会找到一个AddOutputFilterByType
指令。根据您的设置,远程端也有可能有一个代理正在修改 CSS 文件,如果是这样,您需要检查该代理的配置。