我编写了一个可以托管多个客户端/网站的自定义CMS。站点及其各个部分存储在/ client-name / site-name目录结构中。
htaccess通过不存在的索引传递每个请求。
拥有'/clients/client-name/site-name/images/img.jpg'是不理想的,所以只允许'/images/img.jpg'我已经捕获了请求,然后我有效地服务文件的真实位置;标题和所有。我也在为CSS,JS等做这个。
这个工作正常,但我现在注意到这不允许文件正确缓存,因此每次提供一个页面时,它会再次加载整个内容,这很痛苦,看起来很糟糕。
有没有人知道解决这个问题的方法? Apache配置或htaccess解决方案没问题,但它需要知道文件的位置,该文件位于CMS索引编制的数据库中。
帮助!
答案 0 :(得分:2)
我通过PHP脚本提供JavaScript(我用它来组合/缩小JavaScript,因此我提供单个文件)。
我使用以下标头来确保它被缓存:
header('Content-type: text/javascript');
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 6048000));
在我的情况下,原始下载需要982毫秒。在此之后,每个后续请求(Firefox 10.0.1)从缓存中获取仅需87毫秒