2012-09-17 39 views
0

我正在開發一個rals 3.2.8應用程序。我在我的Mac上啓動它,並將它複製到一臺linux機器上。 Linux機器給出以下錯誤行。Rails資產路徑在不同的機器上是不同的

couldn't find file 'jquery.ui.all' 

我檢查了Rails.application.config.assets.paths並意識到它在我的Mac和Linux上不同。我錯過了什麼?

謝謝。

=========== UPDATE ============

我發現了一個奇怪的事情。即使我的開發環境和設計環境(我從config/environments/development.rb複製)是相同的,但Rails.application.config.assets.paths是不同的。

這是從我的控制檯捕獲。

[ssk-MBP]~/dev/test$ r c 
Loading development environment (Rails 3.2.8) 
1.8.7 :001 > Rails.application.config.assets.paths 
=> ["/Users/ssk/dev/dentisusa/app/assets/images", "/Users/ssk/dev/dentisusa/app/assets/javascripts", "/Users/ssk/dev/dentisusa/app/assets/stylesheets", "/Users/ssk/dev/dentisusa/vendor/assets/javascripts", "/Users/ssk/dev/dentisusa/vendor/assets/stylesheets", "/Users/ssk/.rvm/gems/[email protected]/gems/jquery-rails-2.1.2/vendor/assets/javascripts", "/Users/ssk/.rvm/gems/[email protected]/gems/underscore-rails-1.3.1/vendor/assets/javascripts", "/Users/ssk/.rvm/gems/[email protected]/gems/bootstrap-sass-2.1.0.0/vendor/assets/images", "/Users/ssk/.rvm/gems/[email protected]/gems/bootstrap-sass-2.1.0.0/vendor/assets/javascripts", "/Users/ssk/.rvm/gems/[email protected]/gems/bootstrap-sass-2.1.0.0/vendor/assets/stylesheets", "/Users/ssk/.rvm/gems/[email protected]/gems/coffee-rails-3.2.2/lib/assets/javascripts", #<Pathname:/Users/ssk/dev/dentisusa/vendor/bundle/ruby/1.8/gems/jquery-ui-rails-2.0.0/vendor/assets/stylesheets>] 
1.8.7 :002 > exit 
[ssk-MBP]~/dev/test$ r c design 
Loading design environment (Rails 3.2.8) 
1.8.7 :001 > Rails.application.config.assets.paths 
=> ["/Users/ssk/dev/dentisusa/app/assets/images", "/Users/ssk/dev/dentisusa/app/assets/javascripts", "/Users/ssk/dev/dentisusa/app/assets/stylesheets", "/Users/ssk/dev/dentisusa/vendor/assets/javascripts", "/Users/ssk/dev/dentisusa/vendor/assets/stylesheets", "/Users/ssk/.rvm/gems/[email protected]/gems/jquery-rails-2.1.2/vendor/assets/javascripts", #<Pathname:/Users/ssk/dev/dentisusa/vendor/bundle/ruby/1.8/gems/jquery-ui-rails-2.0.0/vendor/assets/stylesheets>] 
1.8.7 :002 > 

我做錯了什麼?

山姆

回答

0

我發現如何解決它。

的config/application.rb中

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test design))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 

我說 '設計' 給它。

我花了差不多一整天的時間。

山姆

+0

很高興知道,感謝您發佈回答。我相信我遲早會參與到這個項目中)如果我誠實,資產管道對我來說有點太神奇了。 –

1

由於資產路徑是由應用程序,我無法想象,爲什麼機器的操作系統應該對應用程序配置任何影響定義。

道歉的明顯問題,但你在兩臺機器上使用相同的環境? (即不是在一個生產和另一個發展?)這是唯一可能想到的可能性。你可以嘗試grep'ing你的config目錄中的不同路徑。 (例如grep strange_asset_path -r config)

+0

您的回答給了我一些信心。其實env是不一樣的。我通過將config/environments/development.rb複製到config/environments/design.rb來製作env。所以它應該是一樣的。我會繼續嘗試。謝謝。 –

+0

一個區別是Mac軌道使用rvm,而Linux軌道不是。 –

+0

rvm本身不應該有任何區別,只要你的寶石版本是一樣的。這些是我能想到的唯一兩個原因,Rails的gem版本或config /中的環境定義(或者我認爲可能會設置config/application.rb)。最後一個想法是,你可以執行'grep -r 「config.assets.paths」。在您的應用程序根目錄中。這應該明確顯示可能更改配置的所有可能的位置。 –

相關問題