为什么资产(application.css,applications.js除外)在使用require_tree的开发模式下没有提供

时间:2013-07-16 10:22:28

标签: ruby-on-rails development-environment require assets

我已正确完成所有配置以将我的Rails应用程序升级到Rails 3.1.3。现在在我的applications.css.erb文件和application.js文件中,我使用下面的语句来包含这些文件和其他css和js文件

的application.js

//= require jquery
//= require jquery_ujs
//= require tinymce-jquery
//= require jquery.ui.autocomplete
//= require_self
//= require_tree .

application.css.erb

/*
 *= require_self
 *= require_tree .
*/

但是,这只是通过资产加载application.js和application.css。

development.rb

MyApp::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # since you don't have to restart the webserver when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  # comment out this line:
  # config.action_view.debug_rjs             = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true
end

Rails:3.1.3 Ruby:2.0.0-p247

请帮忙:) -

1 个答案:

答案 0 :(得分:-1)

实际上,使用require_tree.指令加载JavaScript文件的顺序存在问题。

当我们使用require_tree.时,它假定按字母顺序加载app/assets/javascripts目录中的所有js文件。但是在javaScript的情况下,我们可以按特定顺序加载文件,这样一个文件就不会与任何功能上的文件发生冲突。

因此,除非我们仅使用少量require_tree.文件,否则最好避免使用js指令。您可以在application.js清单文件中显式声明每个文件,以便可以控制订单。

您正在加载的公共文件可以放在app/assets/下的单独目录中,可以使用require_directory ./separate_directory_name加载它以加载它(如果它与订单无关)。< / p>

谢谢:) -