3
我有一個基於Rails 3.0的應用程序。這是一個預測應用程序,我需要在不同的點差上使用不同的CSS規則集,因爲我使用具有不同規則的相同選擇器。Rails資產管道與條件CSS文件
以前在rails 3.0中,我有一個很好的解決方案。
我在我的數據庫中有一列有CSS文件的名稱(沒有擴展名)。
我拿起這個數據是這樣的:
@spread = Spread.find_by_id(params[:spread_id]) @css_to_use = @spread.css_to_use
將有條件線在我application.html.erb:
<%= stylesheet_link_tag @css_to_use unless @css_to_use.blank? %>
這個工作很好,直到如今。我正在爲Rails 3.2開發這個應用程序,並且因爲資產管道,這個魔法已經消失了。
我發現這個: Using Rails 3.1 assets pipeline to conditionally use certain css,但這是一個有點緩慢的解決方案(現在正是我想要的)。
有沒有一個很好的解決這個問題?你知道一個解決方案,不僅能夠加載指定的文件,而且還具有依賴性嗎?
據我所知,這個解決方案只處理一個CSS文件的分離。這無法處理動態處理的CSS加載。或者我錯過了什麼? – Kael 2012-07-31 14:42:09
不,您可以將任意文件放入某些文件夾並根據數據庫中的密鑰加載它們。那是我以爲你想要做的。也許你需要澄清你到底想要達到什麼...... – phoet 2012-07-31 17:58:20
你說得對。但鏈接標記的HAML視圖和配置資源的active_admin部分驅使我誤解。而且你忘記了一個重要的部分。我必須從application.css中刪除這行:* = require_tree。我用它來使它在視圖上工作:<%= stylesheet_link_tag「subsheets /#{@ css_to_use}」除非@ css_to_use.blank? %> 請爲後面的讀者使用application.css編輯您的文章。謝謝。 – Kael 2012-08-01 10:48:57