2014-10-02 106 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