使用内容类型的PHP文件:文本/ css与最新版本(13)的Microsoft Edge中断



我需要从数据库中提取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一起使用的唯一方法。如果其他人找到了另一种方法,请发布替代解决方案。

相关内容

最新更新