使用 PHP 动态禁用 Javascript/CSS 缓存?

发布于 2024-12-11 22:57:18 字数 283 浏览 0 评论 0原文

我在我的网络应用程序中编写了一个名为“devmode”的选项,这基本上意味着“无缓存”。应用程序通常会输出 Javascript 和 CSS 的自动缩小(和聚合)版本,但 devmode 选项会覆盖这一点。

但是,我们仍然有浏览器缓存。那么,言归正传,如果某个 PHP 布尔值为 true,如何禁用页面上所有组件的缓存呢?

干杯

编辑:您可能有兴趣知道我正在运行 Apache,我的一个想法是强制将 .js 和 .css 解析为 PHP(这很简单),并以某种方式“注入”一小段 PHP 代码在每个的开始。

I've coded an option called 'devmode' in my web app, which basically means 'no caching'. The app normally outputs an automatically minified (and aggregated) version of the Javascript and CSS, but the devmode option overrides this.

However, we still have the browser cache. So, without further ado, how can I disable caching of ALL components on a page if a certain PHP boolean is true?

Cheers

Edit: might interest you to know that I'm running Apache, and one idea I had was to force .js and .css to be parsed as PHP (which is straightforward), and somehow 'inject' a little piece of PHP code at the start of each.

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

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

发布评论

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

评论(2

睡美人的小仙女 2024-12-18 22:57:18

这是一种“快速而肮脏”的调试/开发方法,您可以使用随机(或基于时间的)查询字符串调用 HTML 中的所有组件。例如:

<img src="logo.png?uniqecall=20111026035500" />

,在您的 PHP 代码中看起来像这样:

print '<img src="logo.png?uniqecall=' . date("YmdHis") . '" />';

等等...

A "quick and dirty" approach for debugging/developing, you could call all components in your HTML with a random (or time-based) query-string. For instance:

<img src="logo.png?uniqecall=20111026035500" />

, which would look like this in your PHP code:

print '<img src="logo.png?uniqecall=' . date("YmdHis") . '" />';

etc...

以往的大感动 2024-12-18 22:57:18

.htaccess

RewriteRule ^no-cache/(.*?)$ no-cache.php?file=$1 [QSA,L]

no-cache.php

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
readfile('static/'.$_GET['file']);

假设你不会破解自己:)

.htaccess

RewriteRule ^no-cache/(.*?)$ no-cache.php?file=$1 [QSA,L]

no-cache.php

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
readfile('static/'.$_GET['file']);

Assuming you won't hack yourself :)

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