2014-10-08 46 views
0

我有一个相对较新的Rails 4.1应用程序,它不通过资产管道提供JS/CSS。资产管道不提供资产,特别是Rails 4.1中的Bootstrap

该应用程序主要是一个JSON API(命名空间到一个子域)与一些基于Web的管理工具。我已经安装了Rails Admin(它成功地接收了它的CSS/JS并且看起来很棒),但是其他任何web视图都不会从管道中获取资源。

我的具体目标是使用bootstrap gem为所有非Rails管理视图提供Bootstrap。

有一点需要注意 - 最初我剥离了Gem文件,认为这将是一个纯API,然后添加了许多与视图相关的gem。也许这改变了一些默认行为?我当然有捆绑安装。

TL; DR:当我访问rails_admin的外部视图时,我没有获得Bootstrap CSS/JS,并且页面没有样式。

的Gemfile的当前状态(只显示相关的宝石,请注意我没有turbolinks)

gem 'rails', '4.1.6' 
gem 'pg' 
gem 'devise' 
gem 'rails_admin' 
gem 'sprockets-rails', :require => 'sprockets/railtie' 
gem 'uglifier' 
gem "bootstrap-sass" 
gem 'autoprefixer-rails' 
gem 'sass-rails', '~> 4.0.3' 

应用程序/资产/ JavaScript的/ application.js中

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

app/assets/stylesheets/bootstrap_config.css.scss

*= require_tree . 
*= require_self 
*/ 
@import "bootstrap"; 

的config/application.rb中

module Appname 
    class Application < Rails::Application 
     config.assets.enabled = true 

环境/ development.rb

... 
config.assets.debug = true 
config.assets.raise_runtime_errors = true 
+0

为什么bootstrap_config.css.scss代替application.css.scss?你能够使用任何非bootstrap样式吗? – dostu 2014-10-08 23:13:47

+0

我的印象是,这并不重要。我只是尝试application.css.scss,它没有任何区别。不,我没有风格。我正在尝试一些通用的CSS,如:body {background-color:black; }并且什么也得不到。 – 2014-10-09 00:13:49

+0

如果名称不同,您需要将其手动添加到预编译文件列表中。无论如何,请确保您在布局中包含带有stylesheet_link_tag的文件。 – dostu 2014-10-09 06:18:39

回答

1

回答代表多纳塔斯Stundys,谁写在上面的注释正确答案的问题:

“...确保y您在布局中包含带有stylesheet_link_tag的文件。“

我改名为application.css.scss的文件,然后包含这在我的布局文件的头部:

application.html.erb

<%= stylesheet_link_tag "application" %> 

现在我的页面成功地使用Bootstrap。无法相信我无法找到在文档中包含文件的提及。我认为它是通过自动魔法发生的。