2017-01-30 69 views
0

我使用蜻蜓在飛行中生成大拇指,但我注意到它們是在每個單頁上重新生成時生成的,這並不好。閱讀蜻蜓文檔,我看到它的建議添加rack-cache寶石,但是對於創業板的文件說:蜻蜓上飛大拇指,服務器端緩存?

農產品的新鮮度(過期,緩存控制)和/或驗證(的Last-Modified,ETag的)

所以,這依賴於客戶端中的緩存,這對我來說是無意義的。如果我有數千次訪問,我不想爲每一個產生拇指,只依靠每個人都有一個緩存副本的事實。

我想在服務器端實現某種緩存,並避免DragonFly再次生成它,如果具有該維度的文件已經存在。

回答

1

你是正確的,只是發送ETags和緩存控制標頭到客戶端只會稍微有用。

什麼the author is talking about使用像充當客戶和你的Rails應用程序之間的中間人SquidVarnishRack::Cache反向代理 - 所以當客戶端請求/my/stored/image/300x300.jpg反向代理將簡單地靜態地服務於資產沒有要求過打您的Rails應用程序(除非緩存陳舊)。

您可以設置蜻蜓使用文件存儲 - 但它會比一個反向代理較少高性能:

datastore :file, 
    # directory under which to store files 
    root_path: 'public/dragonfly',  
    # - defaults to 'dragonfly' relative to current dir 
    # root for urls when serving directly from datastore using remote_url 
    server_root: 'public'    
+0

我有,但它不存儲縮略圖。只有原始上傳的文件可以將生成的縮略圖文件放置在公共文件夾中,以避免在每個頁面上生成文件? –