我有一个servlet,它为给定的colorScheme名称生成CSS(如果它存在于数据库中)。但是,如果找不到colorScheme,它会将response.sendRedirect()发送到我们CDN上实际文件的位置。
除了IE之外,当CSS包含图标,背景等图像的相对链接时,这适用于所有浏览器。每个其他浏览器使用重定向的URL(CDN URL)来解析CSS文件中的相对URL,但IE仍然使用原始请求URL(servlet URL)。
由于我无法进入的多种原因,我无法将相对URL更改为CSS文件中的绝对URL。有没有办法让IE使用重定向的URL而不是相对URL解析的请求URL?
答案 0 :(得分:2)
听起来更像代码设计问题。就个人而言,我不依赖IE来做任何事情。它总是让我失望:(。我总是会使用HTML LINK标签在CDN开头包含你的CSS,然后让JS导入覆盖它。这样你的网站在noscript浏览器中看起来也会不错。
答案 1 :(得分:0)
作为一种解决方法,您可以使用css @import标记而不是重定向到外部css文件。
@import url('http://www.example.org/style.css');
答案 2 :(得分:0)
由于我们在调用colorScheme servlet之前在另一个servlet中处理我们的HTML / JS,我所做的是在此阶段检查所请求的外观是否是动态的(来自servlet)。如果colorScheme是动态的,我用CSS servlet的地址写出link标签,否则我写出CDN的地址。