有config.assets.compile = true參數可啓用所謂的「實時編譯」。 我需要Rails在實時模式下爲每個請求編譯一個特定的資源(sample.css.scss.erb),但其餘資源應該仍然是預編譯的。 我該如何做到這一點?僅針對Rails中的一個文件編譯實況資產
1
A
回答
1
選項1 - 把sample.css.scss.erb
從config.assets.manifest (default="public/assets")
不同的路徑,並與javascript_include_tag
選項2添加它 - 從config.assets.precompile刪除它
config.assets.precompile -= %w(sample.css.scss.erb)
確保清潔,然後以預編譯測試它。
我沒有測試任何選項,請讓我們知道,如果有任何適合你的作品。
0
當通過.css.erb文件預處理css時,需要實時編譯文件。 它意味着動態編譯CSS。
例如:允許用戶設置的顏色和希望有條件使用「活彙編」
在這種情況下,我會建議動態渲染,而不是活編譯/users/:id/styles.css.erb 。
可能有數百萬用戶的原因,並且在使用Ec2實例的生產環境中會花費更多。這就是爲什麼我會建議以下解決方案:
首先定義在UsersController
您的自定義操作:
# config/routes.rb
match '/users/:id/styles' => 'users#styles', :as => :user_styles
鏈接到你的佈局「樣式」:
# app/views/layouts/application.html.erb
= stylesheet_link_tag 'application', user_styles_path(current_user, :format => 'css')
中定義的動作你控制器。你可以做任何你想在這裏檢索用戶的喜好:
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def styles
@colors = User.find(params[:id]).colors
end
end
這一行動將自動生成這樣的觀點:
# app/views/users/styles.css.scss.erb
$background-color: <%= @colors[:background] %>;
body {
background-color: $background-color;
}
更多的想法和suggetions者居多。
相關問題
- 1. Rails的資產編譯個文件名
- 2. Rails資產:僅預編譯一項資產?
- 3. rails資產沒有被編譯到一個文件中?
- 4. ruby rails 3.2 rake資產:針對引擎資產的預編譯失敗
- 5. rake資產:針對特定JS文件的預編譯
- 6. 未針對Rails資產編譯CSS樣式
- 7. Rails資產:預編譯嘗試編譯太多文件
- 8. Rails 3&Heroku資產編譯
- 9. Rails 3.2資產:預編譯
- 10. 按需資產編譯Rails
- 11. Rails 4,資產編譯
- 12. Rails 3.1資產預編譯
- 13. Rails的生產預編譯資產
- 14. 從資產中排除文件:在rails中預編譯
- 15. Rails:生產資產:預編譯錯誤
- 16. 資源包中的Xibs僅針對小屏幕編譯
- 17. 在rails中預編譯資產
- 18. Rails資產管道中的動態CSS,實時編譯
- 19. Rails的nested_form文件錯誤的資產預編譯
- 20. 僅針對單個函數/文件啓用編譯器優化
- 21. 錯誤編譯資產的Rails 3.2.13
- 22. 而在Rails的預編譯資產3.2
- 23. 的Rails:資產預編譯失敗
- 24. Rails - 預編譯資產上的RoutingError
- 25. Rails沒有編譯我的資產
- 26. Rails的3.2 - 不能預編譯資產
- 27. Rails的預編譯自定義資產
- 28. 錯誤編譯CSS資產指南針
- 29. Rails 3.1資產管道:編譯文件的位置在哪裏?
- 30. 在預編譯資產之後,我需要使用rails資產文件夾嗎?