我需要从数据库中提取CSS变量并使用这些样式编译动态样式表。我一直使用 PHP 文件来查询这些样式,然后用标头内容类型输出它:text/css。
header("Content-type: text/css; charset=utf-8");
在最新版本的 Microsoft Edge 版本 13 中,此方法似乎不再有效。知道为什么或我可以使用什么来代替这种技术吗?
此处更详细地解释了该技术:http://code.tutsplus.com/articles/supercharge-your-css-with-php-under-the-hood--net-6409
查看源代码时,样式表(PHP 文件输出为 CSS)完全空白,但仅在 Edge 版本 13 中。所有其他浏览器继续正常工作。
解决方案是更改动态CSS文件的实现。在上面引用的示例中,我使用了指向CSS文件的链接:
<link rel="stylesheet" href="style.php">
Edge 似乎检查了文件扩展名,但由于文件扩展名未.css,因此无法加载 css 样式。为了解决这个问题,我使用 PHP 来包含该文件:
include 'style.php';
然后在 PHP 文件中,只需在 CSS 代码周围回显样式标签即可。
<style>
.class {
property: none;
}
</style>
此实现具有根本的不同之处,因为从浏览器查看页面源代码时,样式不再包含在单独的文件中,而是以内联方式显示在页面的 head 部分中。
这是我能够让用PHP生成的动态样式与Microsoft Edge一起使用的唯一方法。如果其他人找到了另一种方法,请发布替代解决方案。