【发布时间】:2018-04-18 18:50:13
【问题描述】:
我想包含所有要预编译的 css 文件。现在我使用 @import 将其他 css 包含到 application.css 中。但我想根据控制器加载特定的css文件:
<%= stylesheet_link_tag params[:controller] %>
它给了我一个错误,告诉我将 css 添加到预编译器。假设我将它添加到 config/initializers/assets.rb:
Rails.application.config.assets.precompile += %w( pages.css )
现在它可以工作了,但只适用于那个特定的控制器。我可以手动为每个控制器添加每个 css 文件。它会这样工作,但必须有更好的方法。
我正在使用引导程序,所以我不能使用:
*= require_
我都试过了(不是同时):
Rails.application.config.assets.precompile += %w( *.css *.js)
Rails.application.config.assets.precompile = %w( *.css *.js)
但现在我收到了这个错误:
Undefined variable: "$alert-padding-y".
我猜这来自引导程序。但在我尝试将文件添加到预编译之前它就可以工作了。
=====
编辑:我尝试了Daniel Westendorf 的帖子。将此代码放在 assets.rb 中:
Rails.application.config.assets.precompile = []
Dir[Rails.root.join("app", "assets", "**", "*.css")].each do |file|
Rails.application.config.assets.precompile << file
end
但是我收到了这个错误:
Asset was not declared to be precompiled in production.
Add `Rails.application.config.assets.precompile += %w( application.css )` to `config/initializers/assets.rb` and restart your server
我尝试通过添加 css 和 js 来修复它(它稍后要求它):
Rails.application.config.assets.precompile += %w( application.css application.js )
但我还是遇到了同样的错误:
Asset was not declared to be precompiled in production.
Add `Rails.application.config.assets.precompile += %w( pages.css )` to `config/initializers/assets.rb` and restart your server
【问题讨论】:
标签: ruby-on-rails twitter-bootstrap ruby-on-rails-5 bootstrap-4