【问题标题】:Why assets (except application.css, applications.js) are not being served in Development mode using require_tree为什么资产(application.css、applications.js 除外)没有在开发模式下使用 require_tree 提供服务
【发布时间】:2013-07-14 11:39:46
【问题描述】:

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

应用程序.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。

开发.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

导轨:3.1.3 红宝石:2.0.0-p247

请帮忙:)-

【问题讨论】:

  • Rajesh,我错过了你的问题。这是在生产中吧?而且您从来没有费心阅读 Rails 指南以了解资产管道的工作原理?
  • 我阅读并据此进行了升级。你没有回答我的问题。这是在开发模式。希望你能看到标题。
  • 这就是 aset 管道的工作方式。 guides.rubyonrails.org/…
  • 但是,不幸的是它不起作用。现在,您知道为什么它不起作用了吗?
  • 你读过我链接的内容吗?

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


【解决方案1】:

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

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

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

您正在加载的常用文件可以放在app/assets/下的单独目录中,并且可以使用require_directory ./separate_directory_name加载它来加载它(如果它与顺序无关)。

谢谢:)-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2015-03-08
    • 2014-03-25
    • 1970-01-01
    • 2012-01-23
    • 2011-12-22
    • 2016-03-01
    相关资源
    最近更新 更多