【问题标题】:Apache: How to specify caching for .js and .css files?Apache:如何为 .js 和 .css 文件指定缓存?
【发布时间】:2020-04-25 01:04:18
【问题描述】:

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

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

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

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

我进一步了解,可以使用指令“Header set Cache-Control”在配置文件或 .htaccess 文件中指定非 HTML 文件的缓存。有哪些典型的方法可以做到这一点?

【问题讨论】:

  • 不太清楚你在问什么
  • 我希望 Apache 缓存样式和 JavaScript 文件,就像它已经缓存了 html 文件一样。你能具体说明什么不清楚吗?

标签: php apache caching


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 2016-02-28
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多