为什么webroot / .htaccess规则不适用于主题?

时间:2013-05-30 20:26:27

标签: apache .htaccess cakephp

我在“app / webroot / .htaccess”文件中添加了以下内容,以便为.css和.js等资源文件启用远期的expires标头。虽然这适用于/ 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>

1 个答案:

答案 0 :(得分:1)

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

对于生产站点,建议更改设置,如此处所述Increasing performance of plugin and theme assets

有关性能的其他提示

作为附注,为了提高性能;

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