2012-09-17 37 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”。在您的应用程序根目录中。这应该明确显示可能更改配置的所有可能的位置。 –

相关问题