2014-10-06 60 views
0

在beeing終於滿意我的開發機器上的結果後,我決定使用capistrano在我的VPS上部署我的Rails 4應用程序。因爲我選擇了NGINX和Unicorn。現在我注意到我需要更改一些內容才能使所有工作都能在生產環境中進行,但不知何故,我無法更新視圖。視圖將不會更新生產

什麼我已經做的是:

  1. 通過設置config.action_controller.perform_caching假
  2. 手動檢查的文件清除瀏覽器緩存
  3. 禁用緩存配置/ production.rb遠程服務器使用ssh
  4. 重新啓動我的服務器堆棧

其實我的本地文件AR e與生產服務器上的同步,但是在瀏覽器中沒有看到任何更改。我還可以做些什麼?有什麼我錯過了嗎?我讚賞 任何幫助。

+0

請問如何重新啓動你的堆棧?你確定獨角獸已經重新啓動了嗎? – number5 2014-10-06 22:43:54

+0

我正在運行一個實際執行以下命令的腳本:bundle exec unicorn -c config/unicorn.rb -E production。我只是手動測試它,它似乎工作正常。然後我開始使用NGINX:sudo service nginx restart。 – 2014-10-06 22:57:26

回答

1

1.驗證,如果你沒有剩餘緩存tmp文件,

What i already did is: 
    Disabling the cache in config/production.rb by setting config.action_controller.perform_caching to false 

我認爲,這意味着高速緩存被啓用之前,因此一些緩存文件可能已被先前創建和現在由服務NGINX沒有通過導軌,你沒有提到你手動清除緩存

你可以看看你的「公共」文件夾,看看是否有緩存文件並手動刪除它們,但一定要知道你是什麼做和不要刪除可能由您的應用程序的另一部分使用的文件上。或者你可以嘗試通過控制檯清除在生產服務器緩存

# from the root directory of your application, open your rails console 
$ RAILS_ENV=production rails c 
# Then in the console, type 
> Rails.cache.clear 

2.確認,如果沒有代理緩存

這可能是你的頁面是由外部組件緩存,這樣作爲代理。您應該從本地控制檯檢查服務器的輸出。登錄到您的服務器控制檯並運行curl以從本地主機獲取頁面的輸出(不要使用服務器的外部IP),然後查看源代碼以查看輸出是否已更新。這將縮小一點問題的根源進一步調查

+0

感謝您的回覆。這在某種程度上很奇怪,但我無法在公共文件夾中看到任何緩存文件,並且當我運行您的建議命令時,我收到一條錯誤消息,告訴我在tmp中沒有緩存文件夾。 – 2014-10-07 15:40:08

+0

編輯我的答案給你另一個想法 – Benj 2014-10-08 01:24:51