我有一个 XML 资源,它在处理指令中引用 XSLT 样式表,它具有
href
属性。该属性的 URL 可以有一个查询字符串参数,也可以没有。但是,当 URL 具有多个查询字符串参数时,浏览器似乎甚至不会获取样式表。为什么会这样?
这就是我的意思。首先,我有改编自this w3schools example的XML/XSLT文件,保存到本地磁盘为
scratch.xml
和style.xml
。我编辑了 XML 文件以在顶部(第二行)附近添加此处理指令:
<?xml-stylesheet href="style.xsl" type="text/xsl"?>
我正在使用以下目录在此目录中运行 Web 服务器:
python3 -m http.server
如果我在浏览器中通过 http://localhost:8000/scratch.xml 获取 XML 文件,它会获取样式表并呈现良好。如果我更改
href
属性并添加一个查询字符串参数,使其看起来像这样:
<?xml-stylesheet href="style.xsl?foo=1" type="text/xsl"?>
它获取样式表并呈现良好。但是,如果我更改
href
属性并添加一个参数,使其看起来像这样:
<?xml-stylesheet href="style.xsl?foo=1&bar=2" type="text/xsl"?>
浏览器甚至停止尝试获取样式表。这在 Chrome 和 Firefox 中都会发生。我通过嗅探流量验证它甚至没有请求样式表:
ngrep -d lo port 8000
老实说,我觉得这很莫名其妙。
我试过至少两种不同的浏览器,我试过至少两种不同的网络服务器(nginx 和 python 服务器)。我没想到样式表 URL 的形式会产生影响。