我正在尝试在我的rails 3.1项目中测试咖啡脚本,但它没有在application.js中执行或生成为javascript
我有一个控制器Page
,这里是pages.js.coffee:
test = (input) ->
alert input
test 'hello'
但该警告永远不会在http://127.0.0.1:3000/pages执行, 实际上,application.js只是空的!
这是GemFile,以防它有用:
source 'http://rubygems.org'
gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'devise', '1.4.8'
gem 'will_paginate', '~> 3.0.2'
#gem 'nested_form', :git => 'git://github.com/fxposter/nested_form.git'
gem "simple_form"
gem 'kaminari'
gem 'foreigner'
gem "cocoon"
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem "jquery-rails"
gem 'coffee-script'
gem 'haml'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do
# Pretty printed test output
gem 'turn', :require => false
end
修改
我也添加了这些宝石并安装了它们,但是,咖啡脚本没有被执行
gem 'therubyracer'
gem 'coffee-script-source'
gem 'json'
gem 'execjs'
答案 0 :(得分:3)
首先:在你的资产组中拥有“coffee-rails”就足够了。较旧的版本在:assets组中有“coffee-script”。
第二:你在哪里保存*.js.coffee
个文件?您需要确保它们位于某个位置的“资产”文件夹中。从app/assets/javascripts
开始。如果它们不在您的资产文件夹中,则它们不会进入资产管道。
如果您已经这样做,请考虑启动一个新项目并使用默认配置。它应该没有任何麻烦。将工作项目与非工作项目进行比较。
如果所有其他方法都失败了,您是否可以在GitHub上与我们分享您的项目?
答案 1 :(得分: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)))
# If you want your assets lazily compiled in production, use this line
#Bundler.require(:default, :assets, Rails.env)
端
我怀疑您没有在部署时预编译资产,即使您已将其设置为忽略资产宝石。