【问题标题】:Rails not including require_tree for javascriptRails 不包括 JavaScript 的 require_tree
【发布时间】:2013-12-09 13:02:28
【问题描述】:

在检查更复杂的 javascript(咖啡)代码不起作用之后,我一直在尝试在我的 rails 应用程序中执行一个简单的控制台和警报消息。我能够打印的唯一方法是将代码放入 application.js。以下是我的应用程序中的主要文件:

宝石文件

source 'https://rubygems.org'

gem 'rails', '3.2.0'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'jquery-rails', '3.0.4'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'mongo_mapper'
gem 'haml', "~> 4.0.4"
gem 'i18n', '~> 0.6.9'

assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require_tree .

assets/javascripts/example.coffee

$(document).ready(function() {
  console.log( "pRUEBAEFADF")
});

config/application.rb

require File.expand_path('../boot', __FILE__)

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))
end

module HotelAbadi
  class Application < Rails::Application
    config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    config.i18n.default_locale = :es

    config.encoding = "utf-8"

    config.filter_parameters += [:password]

    config.assets.enabled = true
    config.assets.paths << "#{ Rails.root }/app/assets/fonts"

    config.assets.version = '1.0'
  end
end

config/environments/development.rb

HotelAbadi::Application.configure do
  config.cache_classes = false
  config.whiny_nils = true
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false
  config.action_mailer.raise_delivery_errors = false
  config.active_support.deprecation = :log
  config.action_dispatch.best_standards_support = :builtin
  config.assets.compress = false
  config.assets.debug = true
  config.assets.compile = true
  config.serve_static_assets = false
end

我也尝试手动添加文件,但它没有执行任何操作。我找不到更多讨论这个问题的页面。提前致谢。

编辑:我已经将版本从 3.2.0 更新到 3.2.15 并且问题解决了。

【问题讨论】:

  • 您的清单文件加载 jqueryjquery_ujs。你能确保正确加载这些 jquery 文件吗?如果没有(丢失,不在路径中),您的咖啡脚本文件甚至不会被加载。
  • 问题出在 Rails 的版本上。一直在用3.2.0,现在更新到3.2.15,问题一下子解决了。

标签: javascript ruby-on-rails ruby coffeescript


【解决方案1】:

您的assets/javascripts/example.coffee 不是Coffeescript,是Javascript。将文件重命名为 assets/javascripts/example.js 或将代码转换为 Coffeescript。此外,如果您更喜欢将其翻译为 Coffeescript,则名称应为 assets/javascripts/example.js.coffee

【讨论】:

  • 我试过了,但还是不行。我正在尝试 Nelson 的解决方案,但安装过程太慢(我不知道为什么)。它正在尝试安装 libv8(现在 10 分钟...)。
【解决方案2】:

添加“therubyracer”宝石很重要。

在资产组中添加这一行

gem 'therubyracer', :platforms => :ruby

更多信息在这里:https://github.com/cowboyd/therubyracer

【讨论】:

  • 安装后还是不行。当我加载页面时,不打印任何东西。我已经更改了 example.js 的代码,所以现在它的名称是 example.coffee 并且它使用咖啡语法( $(document).ready -> console.log "LOADED" )。
  • 如果他没有安装 JS 运行时,他的服务器甚至都不会启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多