css - 如何从 `assets.precompile` 中正确删除 Bootstrap CDN 并隔离 Controller 样式表

标签 css ruby-on-rails twitter-bootstrap asset-pipeline

我试图通过编译我的 Assets 并通过 <%= stylesheet_link_tag "application", params[:controller] %> 在我的布局中呈现它们来将我的 CSS 隔离到特定的 Controller 。

我正在使用 Bootstrap (4.3.1) CDN 并将其包含在我的 application.scss 文件中:

@import "bootstrap-sprockets";
@import "bootstrap";

问题是当我做 Rails.application.config.assets.precompile += %w( *.css )它一定是在编译 Bootstrap ,因为它给了我这个错误:

Sass::SyntaxError in RecipeCategories#index

Undefined variable: "$alert-padding".

所以我用它来“解决”它:

Rails.application.config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?('.css') }, /bootstrap.css$/ ]

我不知道这是否是防止预编译 Bootstrap 的有效或最佳实践。

我还遇到了一个问题,即在一个 Controller 的样式表中定义的样式被加载到另一个 Controller 的 View 中,直到页面被刷新。 (我将类放在多个 Controller View 中的一个元素上,以查看它是否真的与特定 Controller 隔离。)

基本上,在刷新页面之前,一个 Controller 的 CSS 文件中的样式可以在其他 Controller View 中使用,然后从 Controller View 中没有该样式的元素中“删除”该样式CSS 文件。

最佳答案

您似乎错误地通过 gem 和 Rails 的 Assets 管道预编译了 Bootstrap Assets 并且从 CDN 获取 Bootstrap 。您只需要一个或另一个,因此您可以删除 gem 并只使用 CDN。

关于css - 如何从 `assets.precompile` 中正确删除 Bootstrap CDN 并隔离 Controller 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55526001/

相关文章:

html - YouTube 视频作为网页背景

ruby-on-rails - Rails 中的一对一或零关联

css - Bootstrap - 在导航栏上设置封面图像

javascript - 通过单击链接而不是图标来更改移动导航打开操作

javascript - 根据另一个 div 显示隐藏一个 div

jquery - 在悬停时显示 div 但使其点击通过

ruby-on-rails - Rails 5 破坏了 send_file 方法?

ruby-on-rails - 导入 CSV 时,如何处理与关联对应的行中的数据?

javascript - 如何为每个 block 设置一个事件类? [Javascript]

html - IE9 问题 : Text in div is aligned to bottom