使用 PHP 生成的 CSS 删除加载工件

发布于 2024-10-17 13:00:27 字数 350 浏览 5 评论 0原文

我使用 PHP 创建可维护的样式表,如以下文章所述: http://www.barelyfitz.com/projects/csscolor/

但是,由于 PHP 需要“动态”生成此文件需要很少的时间,它不会被客户端的浏览器缓存,并将所有元素显示为空白/无样式。有什么方法可以缓存 CSS 或删除该工件吗?

网站参考为 http://www.leadwerks.net/

谢谢!

I'm using PHP to create maintainable stylesheets, as described in the following article:
http://www.barelyfitz.com/projects/csscolor/

However, as PHP takes a tiny bit of time to generate this file "dynamically", it doesn't get cached by the client's browser and shows all elements as blank/unstyled for a fraction of a second. Is there any way to cache the CSS or to remove that artifact?

The website reference is http://www.leadwerks.net/.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难遇 2024-10-24 13:00:27

如果 CSS 文件是动态生成的,但不会根据请求进行更改,请发送远距离到期标头,并将上次修改时间附加到文件中,以便在需要更新时可以破坏缓存。

更新

所以我猜你的 PHP 文件会有某个地方......

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

所以添加这个...

header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 year')).' GMT');

然后,当引用 CSS 文件时,执行以下操作...

<?php echo $file = '/styles/custom.php' ;?>
<link rel="stylesheet"
      type="text/css"
      href="<?php echo $file; ?>?m=<?php echo filemtime($file); ?>"
/>

没有这个,用户将看不到对您网站的更改自从他们第一次下载 CSS 以来已经一年了。当您更新文件时,您将更改附加的数字。如果您不实际更改文件(它使用数据库调用),则可以选择最后更新的行或附加版本控制号。

If the CSS file is being generated dynamically, but not changing per request, send far distant expiry headers, and append the last modified time to the file so you can break the cache if you need to update it.

Update

So I'm guessing your PHP file will have somewhere....

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

...so add this...

header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 year')).' GMT');

Then, when referencing the CSS file, do this...

<?php echo $file = '/styles/custom.php' ;?>
<link rel="stylesheet"
      type="text/css"
      href="<?php echo $file; ?>?m=<?php echo filemtime($file); ?>"
/>

Without this, users would not see the changes to your site for a year since they first downloaded the CSS. When you update the file, you will change the number appended. If you don't physically change the file (it uses database calls), you could select a last updated row or append a version control number.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文