2014-10-02 27 views
2
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
<%= stylesheet_link_tag 'authenticate', media: 'all', 'data-turbolinks-track' => true %> 

我喜歡在「application.css」中添加一個樣式表「authenticate.css」,但出現錯誤。如何在Rails 4中的application.html.erb中添加更多樣式表

Sprockets::Rails::Helper::AssetFilteredError in <controller>#<action> 

Asset filtered out and will not be served: add 'Rails.application.config.assets.precompile += %w(authenticate.css)' to 'config/initializers/assets.rb' and restart your server 

如果我沒看錯,這不是在軌道3的情況下,我不喜歡在「配置/初始化/ assets.rb」添加一行約「authenticate.css」代碼。這是在Rails 4中添加樣式表的唯一方法,還是我做錯了什麼?

我不希望它成爲application.css的一部分,通過調用它或通過* require_tree .。我只是想在需要的地方調用它,但不是在所有的視圖中調用它。

+1

也許我錯過了一些東西,但爲什麼不直接將authenticate.css放入您的assests文件夾? – JTG 2014-10-02 19:42:29

+0

@JTG,「authenticate.css」文件位於app/assets/stylesheets文件夾中。 – Syed 2014-10-03 06:55:47

回答

1

我不喜歡在「config/initializers/assets.rb」中添加一行關於「authenticate.css」的代碼。這是在Rails 4中添加樣式表的唯一方法,還是我做錯了什麼?

如果你看一下docs,它說

如果您有其他清單或個別樣式表和JavaScript文件包括,您可以將它們添加到配置/初始化/ assets.rb預編譯陣列

所以這行基本上告訴軌道預編譯單個資產。

如果我沒看錯,這不是在軌的情況下3

如果你看看這個pull request你會看到從sprockets_better_errors的寶石,完整性檢查已合併到Rails 4.1中。其目的是揭示您在開發模式下運行應用程序時在生產中看到的資產管道錯誤

+0

按照你和文檔所說,在Rails4中,添加一個樣式表的唯一方法是在「config/initializers/assets.rb」中聲明它,對吧? – Syed 2014-10-03 06:58:56

+0

@Syed只有當你想製作一個單獨的清單文件時,你必須包含該行,就像你不想在application.css中要求那樣。這一行將做的是爲你的css創建兩個清單文件,一個用application.css,另一個用authenticate.css – Mandeep 2014-10-03 07:38:17

0

請確保* = require_tree被添加到您的application.css文件中,它會自動添加所有css文件夾內的css,並且不需要手動添加它們。

+0

@Nikitha Shingh,我不希望它成爲application.css的一部分,我只是想在需要它的視圖中調用它,而不是在所有視圖中調用它。 – Syed 2014-10-02 20:07:02

+1

你不是在應用程序佈局中添加新的CSS? – 2014-10-02 20:08:22

+0

@Nikitha Shingh,不,我不是在那裏添加的,我也評論過這行* require_tree。 – Syed 2014-10-02 20:13:35

相關問題