Apache:如何为.js和.css文件指定缓存?



我知道在网站开发过程中,可以使用 PHP 在任何页面的开头使用指令完全禁用缓存

if (getenv("DEVELOP"))
header("Cache-Control: no-store");

但对于生产用途,所有不经常更改的文件都需要缓存。

我的理解是,Apache网络服务器默认缓存HTML文件(或PHP文件生成的HTML(,而不是样式或JavaScript文件。

我进一步了解,可以使用指令"标头集缓存控制"在配置文件或.htaccess文件中指定非HTML文件的缓存。有哪些典型的方法可以做到这一点?

Apache 不缓存 PHP,代码每次都会执行。但是,代码被编译成zend vm字节码,前提是PHP作为模块加载到apache中,字节码被存储,直到底层PHP文件被更改。HTTP 标头适用于 Web 浏览器,因此它们不会对您的服务器发出重复请求。

如果你想在你的服务器上缓存动态页面,只使用apache和php,你必须自己做。你可以用 php 以多种方式做到这一点。您可以使用 php 的输出控制功能修改现有的 php 文件,并将输出写入一个文件,然后该文件将从您的网站链接。然后,您需要设置一个 cron、supervisor 或 systemd 作业来定期运行 php 文件。

或者,如果您将其配置为 laravel,某些框架将为您执行一些缓存。现在一个非常流行的解决方案是将 apache 与 nginx 结合起来进行缓存。

最新更新