0

我在 'app/webroot/.htaccess' 文件中添加了以下内容,以启用 .css 和 .js 等资源文件的远期过期标头。虽然这适用于 /js /css /img 文件夹中提供的任何内容,但它不适用于放置在 CakePHP 主题 webroot/js|css|img 文件夹中的任何内容。

是否应该使用类似的方法来控制主题的资源缓存?我所有的主题资源文件都会在第二天到期,就好像它在抓取某种默认值一样。

mod_expires 没有其他 Apache 规则,因为我试图将其全部保存在 .htaccess 中。

<IfModule mod_expires.c>
    ExpiresActive On

    ExpiresByType text/css "access plus 1 week"

    # ... Also added png,js etc...

</IfModule>
4

1 回答 1

1

使用 CakePHP 的默认设置,主题(和插件)资产通过 PHP 提供,而不是由 Apache 直接处理。我不是 100% 确定,但这可能会导致 htaccess 设置不被应用,因为 Apache 不会将这些文件视为“静态”文件。

对于生产站点,建议更改设置,如此处所述增加插件和主题资产的性能

有关性能的其他提示

作为旁注,为了获得额外的性能;

  • 查看 Html5 Boilerplate 的服务器配置文件。它们有很好的文档记录,并提供了许多有价值的设置来加快您网站的性能。已经对这些设置进行了大量研究,因此您不必自己这样做。其中许多设置也适用于 CakePHP 网站。你可以在这里找到配置文件:https ://github.com/h5bp/server-configs/tree/master/apache
  • 不要使用 .htaccess 文件,而是将 .htaccess 文件的所有规则/设置移动到 VirtualHost 配置并禁用覆盖。这样,Apache 不必为每个请求扫描每个目录以查找可能的 .htaccess 文件
于 2013-05-30T21:23:30.117 回答