繁体   English   中英

通过PHP Parser与CSS作为CSS源的CSS

[英]CSS thru PHP Parser vs. PHP as CSS source

为了让我的项目响应内容的某些上下文,我希望我的CSS文件分别响应,而不是设置其他CSS文件(添加到http请求中)或在相应的php脚本内解析CSS(imho:相当混乱)。

CSS通过PHP解析器

现在我可以通过.htaccess告诉PHP解析器也处理css文件。
缺点是:在我当前的项目结构中处理多个CSS文件或破坏结构以仅在一个子目录中激活CSS文件的解析的开销。
无论哪种方式,我都可以像这样:

AddType application/x-httpd-php php php4 php3 css

... vs. PHP脚本作为CSS资源

或者我可以将页面元数据中的php源链接为css源。
可能的不利之处:可能是某些浏览器不接受具有不同扩展名的文件作为CSS资源...?
无论如何...:

<link rel="stylesheet" type="text/css" href="/style/preprocessed.css.php" media="all">

你有什么建议?

<link rel="stylesheet" href="style.php">在所有浏览器中都可以正常工作,但请确保在您的PHP文件中设置正确的标头:

header('Content-type: text/css');

我不会将CSS文件解析为PHP,否则您可能会做一些危险的事情:

/* bad.css */
<?php unlink('index.php'); ?>

...管他呢。 那不应该发生(其他在项目上工作的人可能不会期望它)。

理想情况下,您只需要事先处理所有CSS并链接到最小化的常规CSS文件即可。

只要资源返回Content-Type: text/css浏览器就会将其接受为CSS。

如果您想减少HTTP流量,请使用类似YSlow的工具来分析您的网站。 它提供了有关如何优化HTTP流量的可靠建议。

您可以进行2种相对简单的优化:

  1. 启用gzip压缩。 这减少了文件大小,通常减少了加载时间。
  2. 设置适当的缓存头。 CSS文件通常是静态的,它们不会从一个请求更改为另一个请求。 我个人喜欢将指纹作为CSS和JavaScript等资源文件的缓存策略。

让PHP处理CSS生成有很多优点,但是如果可以让Apache服务器处理文件,那就更好了。 如果您确实想使用PHP为它们提供服务,请查看readfile函数。 它使您可以以非常低的开销读取和回显文件。


您使用解析一词。 我认为您实际上并不是要解析,而是要提供服务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM