2016-04-25 131 views
6

我想添加浏览器缓存到我的Laravel应用程序。如何在Laravel 5中添加浏览器缓存?

我用药剂版本的工具,像这样: https://laravel.com/docs/5.2/elixir#versioning-and-cache-busting

然而,根据谷歌PageSpeed Insights的,该文件仍然不缓存和我,而不是得到这个消息:

设定的到期日或静态资源的HTTP头中的最大年龄指示浏览器从本地磁盘加载以前下载的 资源,而不是通过网络。

我想这可能是因为我需要手动添加缓存标头?

+2

您可以使用您的Web服务器上设置的报头中的到期日期。我认为这很容易 – geckob

回答

6

是的,您需要在静态资源的HTTP标头中设置Cache-ControlExpires,以便Google PageSpeed消息不会显示出来。

由于您已经在使用Elixir版本控制工具,因此您可以安全地将JS/CSS文件的过期设置为1周。

要做到这一点的方式取决于您使用的是什么Web服务器。

如果您使用Apache,您可以将以下代码放入.htaccess或您的虚拟网站的配置文件中。

<FilesMatch "\.(js|css)$"> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 weeks" 
</FilesMatch> 

一定要启用mod_expires Apache模块!

使用相同的语法,您可以为.html,.jpg,.png等文件设置缓存规则,以加快页面加载速度。

如果使用nginx的,也有类似的方法来解决这个问题,您可以按照this tutorial

+0

我只是想添加一个链接到Apache config tutarial即使答案足够冗长。 http://linuxpitstop.com/configure-apache-mod_expires-on-file-extensions/ –