2016-08-03 144 views
0

我在資產/樣式表位置中有一個clients.css和jobs.css。Rails CSS樣式表覆蓋對方

每個都有一個相應的控制器。喬布斯是在客戶之後用腳手架創造的。 scaffolds.scss文件是空白的。

application.css是空白

當我編碼在jobs.css的變化如body{color:black},它改變了客戶端/ index.html.erb視圖和作業/ index.html.erb視圖。

這可能是什麼原因?我想有工作和客戶單獨.css文件..

+0

在你的'application.html.erb'佈局中,樣式表是如何被需要的? – Jeff

+0

'<%= stylesheet_link_tag'application',media:'all','data-turbolinks-track'=> true%>' – HoosierCoder

回答

3

documentation

鏈輪串接所有的JavaScript文件合併爲一個主js文件 和所有的CSS文件合併成一個主的.css文件。

這意味着什麼,當然是,當你做出改變,以jobs.css,你會看到相同的CSS被應用到所有匹配的元素在整個應用程序。所有這些獨立的.css文件都可以幫助您從人的角度而不是從應用程序的角度來組織事物。

你可能只想拿出不同的ID,並根據您的頁面(如#body_client#body_job)上區分它們的類,但你可以看到這個命名約定如何能得到笨拙爲您的應用程序的增長。

擁有單獨的資產是可能的,但不是沒有一些痛苦。

application.js,刪除:

//= require_tree 

application.css,刪除:

*= require_tree 

application.html.erb,添加以下內容:

<%= stylesheet_link_tag "application", params[:controller], :media => "all" %> 
<%= javascript_include_tag "application", params[:controller] %> 

config/initializers/assets.rb創建一個新的初始化文件,添加下面的代碼:

%w(clients_controller jobs_controller).each do |controller| 
    Rails.application.config.assets.precompile += ["#{controller}.js.coffee", "#{controller}.css"] 
end 

這應該讓你設置單獨的每頁資產。查看原始blog post瞭解更多詳情。

+0

哇......那真是太瘋狂了..所有那些都有單獨的樣式表 – HoosierCoder

+0

是的,我添加了一個替代作爲編輯,但它是kludgey。真正的「解決方案」是想出一個您喜歡的所有網頁設計。這樣,您在初始開發和維護方面的努力就很小。 – MarsAtomic

+0

是的,對所有頁面的設計都有意義 – HoosierCoder