2011-11-17 62 views
1

的Ruby 1.9.2,Rails的3.1application.css不包括其他的樣式定義

這是我的理解來佈局應該如何應用:

一個。應用。 html.erb有以下助手方法 -

`<%= stylesheet_link_tag "application" %> ` 

,它基本上說:「使用application.css文件,並做相應處理有提到

b Application.css文件具有一個指令,包括所有。在其所在的目錄的樣式表文件。

= `require_tree` . 

(I已經添加了線以上至application.css的底部)


問題是文件products.css.scss從不應用於頁面。當我使用chrome開發工具時,它顯示scaffolds.css應用於頁面。 (希望附上圖片,但我不能,因爲它只限於新用戶)

我一直在爭取這個東西一段時間,無法弄清楚。 我需要找到一種方法讓application.css完成它應該做的事情,使用同一個目錄下的樣式定義,而不會發生這種情況。

UPDATE:

這裏是溶液。 在index.htm.erb有一個塊

<table class> 
<% @products.each do |product| %> 
    <tr class="<%= cycle('list_line_odd', 'list_line_even') %>"> 

我改成了(見第一行)

<table class = "products"> 
<% @products.each do |product| %> 
    <tr class="<%= cycle('list_line_odd', 'list_line_even') %>"> 

但是婷是 - 我不知道爲什麼它開始工作,我在我正在閱讀的書的勘誤網頁上找到了這個解決方案,有人提供這個解決方案。 我很感激,如果有人可以闡明爲什麼這條線幫助。

+0

它實際上是Ruby 1.9.2和Rails 3.1 :)它還有助於包含一個標籤,如[tag:ruby-on-rails-3]和/或[tag:ruby-on-rails-3.1] – unrelativity

+0

你能否請你發佈application.css中的代碼,你能確認products.css.scss有內容嗎? – stephenmurdoch

+0

@ stephenmurdoch application.css現在看起來像這樣(我刪除了require_tree。從底部) /* *這是一個清單文件,它會自動包括所有在這個目錄 *和任何子中可用的樣式表目錄。您可以自由地爲該文件添加應用程序範圍的樣式,並且它們將出現在編譯文件的頂部 *,但通常最好爲每個樣式範圍創建一個新文件。 * = require_self * = require_tree。 */ – Elijah

回答

0
*= require_tree . 

應包含當前目錄中的所有樣式表。但爲什麼你有兩個地方。嘗試從最後一行刪除需要的樹。

2

要包含的指令是樣式表應該只在註釋中。

刪除不在註釋中的=require_tree.,並確保註釋指令使用相同的間距格式化。

您不必從默認值更改它。

+0

好的,我刪除了該行,並且我的application.css恢復爲默認狀態。它並沒有幫助,仍然devtools顯示scaffolds.css被應用。 – Elijah

+0

資產目錄中是否有scaffolds.css? – natedavisolds

+0

@ natedavisolds ||| 是的,它和application.css在同一個目錄下。我嘗試刪除它,但它沒有幫助。 Spooky ... 更正:它確實改變了devtools在'user agent stylesheet'而不是scaffolds.css頁面上顯示的方式 - 但是它沒有應用位於同一目錄中的products.css.scss我需要申請) – Elijah

1

答案是,如果你看看product.css.scss必須有一個類作爲「產品」的表。

所有的css指令都嵌套在.products {}之下。

所以,如果你沒有一個類設置爲「產品」的表,那麼就沒有應用的CSS。

1

的解決方案是爲farout提供的(和容易,你應該相信):

腳手架doesn't標記您的表標籤與正確的類,你必須手動編輯代碼插入「產品「級爲它:

<table class="products"> 
0

首先,在代碼示例中的線<table class=>是不完整的,必須是<table class="products">。 其次,行= require_tree在文件application.css,對我來說不是必要的,所以請評論它。 第三,重新加載localhost:3000/products或任何你的頁面方向,如果它不工作重新加載服務器。

所有這些推薦工作至少對我來說是有效的,試試吧!