2015-05-12 102 views
0

我目前正在開發一個應用程序與Laravel 5,和我遇到了以下問題緩存:laravel 5 - 使本地資源文件

當我包括,例如,從國外服務器.js文件,該腳本加載了一個304沒有修改 - 這很好。根據chrome的網絡標籤,它會在146ms內加載。 當我包含本地資產時,{{asset('資產路徑')}}我總是得到200,並且花費相當長的時間(大約800ms)來加載文件。

如何管理緩存資產文件?我想這是一個瀏覽器或網絡服務器的問題。

  • 布勞爾:鉻43.0.2357.52
  • Web服務器:我使用的是工匠內置的Web服務器

回答

2

工匠服務器並不是爲生產使用 - 它只是一個開發服務器。它不緩存,並不是爲了。您在開發時不希望進行緩存,因爲這會阻止您的更改進入瀏覽器。

當您使用實際的服務器(如Apache或Nginx)進行生產時,它應該爲您處理緩存。它們都非常靈活,並且有一堆配置選項用於緩存靜態資產。值得看看HTML 5 Boilerplate repo上那些Web服務器的樣板配置,因爲它們爲您提供了許多開箱即用的設置。

您最好讓Web服務器處理緩存資源,而不是將這些工作放到Laravel上。對於一個Web服務器來說,發送一個靜態資產(或者一個304響應)要比加載PHP,引導框架,然後確定適當的響應要快得多。

+0

我知道Artisan僅適用於生產,但如果您爲其添加一些資產,頁面加載量將增加很多,那麼生產就變得非常可怕。而一些資產,如jquery,bootstrap等不會改變(如果他們這樣做,我最好自己清理我的緩存)。 – Johannes

+1

不,Artisan服務器*不是用於生產。您可以查看使用CDN來查找您不想爲自己服務的第三方資產(如jQuery或Bootstrap)。否則,請考慮使用Laravel的宅基地或其他虛擬服務器環境,它們將使用Apache/Nginx進行本地開發,併爲您更好地緩存不變資產。 – Dwight