在服務器上預編譯資源需要很長時間,其中Rails 4.0.0應用程序有時會被終止,因此我切換到本地執行此操作,將其壓縮並上傳到服務器代替。Rails資產管道爲舊清單提供服務
它解決了速度問題。但是我遇到了另一個問題,即已經被上傳到服務器的最新資產沒有被我的Rails服務器服務,即使它們已經被重複重新啓動。
爲了說明這一點,application.css
的版本,我們現在正在擔任我們的生產程序是application-dc02e058cd956b2492c840315ccbff7f.css
服務器上的清單可用文件 -
[email protected]:/mnt/snapshot-production/current/public/assets$ ls -lt manifest-*
-rw-rw-r-- 1 app app 203032 Jan 17 05:32 manifest-3365253428e645b923e834b54fb530ea.json
-rw-rw-r-- 1 app app 203032 Jan 6 17:02 manifest-44c2495f77ae0b10489563653d482136.json
-rw-rw-r-- 1 app app 203032 Dec 30 08:53 manifest-bbe38eefd3a3671b8d1d7bf524307413.json
-rw-rw-r-- 1 app app 203212 Dec 30 08:36 manifest-7fde3fe5c6247d724bf36a7aa9baee53.json
如果我試圖找到這體現參考目前服務的應用程序。我得到以下內容 -
[email protected]:/mnt/snapshot-production/current/public/assets$ grep -rl application-dc02e058cd956b2492c840315ccbff7f.css manifest-*.json
manifest-44c2495f77ae0b10489563653d482136.json
manifest-7fde3fe5c6247d724bf36a7aa9baee53.json
manifest-bbe38eefd3a3671b8d1d7bf524307413.json
正如你所看到的,它被服務從我擁有的3個較早版本的清單文件中。
如果我試圖找到正在從我最新的清單文件中擔任什麼版本的application.css
(1月17日) - manifest-3365253428e645b923e834b54fb530ea.json
-
[email protected]:/mnt/snapshot-production/current/public/assets$ grep -Po application*.css manifest-3365253428e645b923e834b54fb530ea.json
manifest-3365253428e645b923e834b54fb530ea.json:application-58eb91ccbe7698274d351e16b9b281aa.css
manifest-3365253428e645b923e834b54fb530ea.json:application-58eb91ccbe7698274d351e16b9b281aa.css
正如你可以看到它是一個完全不同的一個,這是我所期望我的應用服務器現在就可以投入使用但不幸的是,這種情況很多時候並沒有引起問題。
但有一件事我已經注意到,但沒有說明的是,有時它工作正常。最新版本是在部署完成後提供的。
有什麼問題嗎?
啊!我懂了。謝謝馬特。並感謝關於下載資產的提示。好主意啊。從來沒有想到這一點。謝謝。 –