有誰知道如何指示rails不緩存lib文件夾中包含的類?從緩存的Lib /類阻止導軌2/3
9
A
回答
2
這也可以通過不使用lib/
目錄來完成,而是通過在app/helpers
目錄中存儲任何類或幫助程序文件來完成。這樣,它們將在開發期間重新加載並在生產期間緩存。
8
「緩存類」我想你的意思是說,在處理新請求之前,應用程序目錄內的源文件會自動在開發環境中重新加載?
這與緩存無關,Ruby的正常行爲是一次讀取和解析源文件,並且只要進程運行就不會再次。 Rails(ActiveSupport :: Dependencies實際上)提供了一種機制來在處理請求之前重新加載整個代碼。在開發環境中,這很有用,因爲您不需要爲代碼執行任何更改就重新啓動本地Web服務器。在生產環境中,這會嚴重損害性能,因此被關閉。
默認情況下,應用程序類被標記爲可重新載入。您可以標記使用unloadable
類方法在開發環境中處理的請求之前重新加載任意類:
class MyClass
unloadable # mark this class as reloadable before a request is processed
# …
end
要注意的是並不是每一個類可以卸載發揮出色。只要你在一個源文件中定義你的類,這個文件可以被Rails的自動加載機制發現和加載,那麼你可能是好的。但是如果您在其他地方重新開放課程以便進行校對,可能會遇到麻煩,因爲自動加載無法解決此問題。
相關問題
- 1. 防止導軌緩存密碼
- 2. 用導軌緩存
- 3. 從緩存中阻止JQUERY .load
- 4. 新的導軌緩存
- 5. 阻止表單緩存
- 6. 阻止緩存支持
- 7. 如何阻止FLEX緩存?
- 8. 頁面緩存導軌
- 9. 如何阻止我的gridview緩存?
- 10. 阻止jQuery Mobile中的ajax緩存
- 11. 阻止xmlHttpReq的瀏覽器緩存
- 12. doctrine 2阻止方法(或類似問題)的LifecycleCallbacks緩存
- 13. 如何阻止實體框架緩存
- 14. 按BACK按鈕時阻止緩存
- 15. 阻止Android WebView緩存數據
- 16. 什麼會阻止ASP.NET輸出緩存?
- 17. 更新緩存而不會阻止
- 18. 阻止require.js緩存文本文件?
- 19. 阻止瀏覽器緩存會話ID
- 20. 阻止Chrome緩存AJAX請求
- 21. 阻止谷歌索引/緩存
- 22. 如何阻止UIWebView緩存CSS?
- 23. 無法阻止頁面被緩存
- 24. 組件正在緩存在Angular2中 - 阻止視圖緩存
- 25. 緩存動態圖像導軌
- 26. 如何導軌默認緩存工作
- 27. 導軌3緩存 - 有沒有寶石?
- 28. 導軌資產管道緩存字體
- 29. Groovy沙箱阻止工作流中的類-cps-global-lib-plugin
- 30. 如何阻止谷歌從緩存magento網站?
不完全。我的意思是當我將一個類(使用require和include)加載到我的應用程序中時。然後,無論何時該類在另一個頁面或另一個請求上使用,那麼rails不會再次要求文件(加載文件),它只是使用之前加載的類(因爲它保留在內存中)。這讓我很沮喪,因爲每次我對包含的lib類進行更改時,都需要重新加載rails服務器。我正在開發模式下運行它的配置緩存類設置爲false。 – matsko 2010-08-06 17:54:35
我明白了。 Rails重載機制可能只適用於你的類被Rails的自動加載所覆蓋,而不是你手動需要它。我建議讓你的類通過Rails自動加載,這非常方便無論如何(你不需要它,它在任何地方工作)加載。如果這是不可能的,你可以嘗試利用Rails的自動載入功能,將自己的類文件加載到自動加載的文件中(但請確保使用#load,而不是#require,因爲只需要加載一次) – Zargony 2010-08-06 23:00:15