2014-10-08 67 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。無法相信我無法找到在文檔中包含文件的提及。我認爲它是通過自動魔法發生的。