2016-04-25 48 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/ –