我已经在这个问题上敲了几天,所以希望有人可以提供帮助。
我有一个非常基本的Rails应用程序(3.2.13),使用以下宝石进行twitter引导样式
gem 'bootstrap-sass'
gem 'font-awesome-sass-rails'
资产按以下方式列出
- stylesheets
- all
bootstrap_override.css.scss
- public
styles.css.scss
- admin
styles.css.scss
bootstrap override中包含以下代码
$baseLineHeight: 18px;
$baseFontSize: 14px;
$sansFontFamily: 'Open Sans';
$baseFontFamily: 'Open Sans';
$monoFontFamily: 'Ubuntu Mono';
$linkColor: #56b1e4;
$btnPrimaryBackground: #86b063;
@import "bootstrap";
@import 'font-awesome';
public.css.scss具有以下内容,并在所有公共页面的默认布局中使用
/*
*
*= require_self
*= require_tree ./all
*= require_tree ./public
*/
admin.css.scss如下所示,用于没有admin命名空间的页面
/*
*
*= require_self
*= require_tree ./all
*= require_tree ./admin
*/
这是问题所在:
在制作时,公共页面工作正常,没有错误。但是管理页面会抛出500以下
ActionView::Template::Error (File to import not found or unreadable: bootstrap.
Load path: /sites/blog/releases/20130613100153
(in /sites/blog/releases/20130613100153/app/assets/stylesheets/all/bootstrap_and_override.css.scss)):
5: meta charset="utf-8"
6:
7: = render 'layouts/custom_fonts'
8: = stylesheet_link_tag "admin", media: 'all', 'data-turbolinks-track' => true
9: = javascript_include_tag "application", 'data-turbolinks-track' => true
10: = render 'layouts/custom_fonts'
11:
app/assets/stylesheets/all/bootstrap_and_override.css.scss:14
app/views/layouts/login.html.slim:8:in `_app_views_layouts_login_html_slim___3383884768077581761_25787440'
我已经尝试清除缓存,重新部署(通过资产管道插件通过Capistrano完成),静态编译资产,没有任何作用。
我显然遗漏了资产设置中的一些关键词,但是什么?
哦,在开发环境中,一切运作都很完美,我假设由于资产pipleline动态编译资产。
答案 0 :(得分:1)
问题可能是资产管道已经将bootstrap编译为公共,并且不想将其添加到管理员。两种可能的方法:
将引导程序文件与公共文件和管理文件分开,以便客户端必须加载包含引导程序的基本CSS文件,以及公共或特定于管理员的文件。
在一个application.css文件中包含public和admin。如果您需要将admin与公共css区分开来,请使用类似于命名空间的body类。