Rails4加载javascript文件。 (资产管道)

时间:2014-02-05 07:13:43

标签: javascript ruby-on-rails heroku ruby-on-rails-4 asset-pipeline

我正努力让我的一个javascript文件加载/使用Rails4应用程序。 该文件是users.js.coffee。这是我想要为所有页面加载的所有javascript文件(不一定只是用户控制器)

如果我尝试通过localhost:3000 / assets / users.js加载,我可以看到已编译的JS文件。但是在chrome上使用cmd + o不会加载文件,也不会触发事件,所以我知道它不起作用(并加载)

还尝试了bundle exec rake assets:clean assets:precompile

我在控制台中看不到任何500或400或js错误。最简单的users.js.coffee也不起作用

$(document).ready -> 
  alert('hello')

一些配置:

applcations.js

//= require jquery
//= require jquery_ujs
//= require js-routes
//= require bootstrap-slider
//= require users
//= require_tree .

development.rb   config.assets.initialize_on_precompile = false   config.serve_static_assets = false

production.rb

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = true
  # Compress JavaScripts and CSS
  config.assets.compress = true
  config.assets.compile = false
  # Generate digests for assets URLs
  config.assets.digest = true
  config.assets.debug=true

另外users.js.coffee在我开始使用bootstrap-sass等获取引导程序之前工作正常(在切线上,最终最终从application.haml中的托管CDN加载引导程序,不确定它是否应该干扰如何加载/工作的js文件)

非常感谢任何调试此指针。已经花了几个小时,Asset Pipeline每次都会得到我

由于 P.S: 我正在部署到heroku(但是这在dev和heroku都失败了,所以希望修复dev应该就够了)

1 个答案:

答案 0 :(得分:0)

通过在应用程序的javascripts所依赖的所有其他库之后但在application.js之前移动//= require users来更新require_tree .内容:

//= require jquery
//= require jquery_ujs
//= require js-routes
//= require bootstrap-slider
//= require users
//= require_tree .

要求javascripts的顺序在这里很重要。如果您的文件为users.js.coffee,则jQuery需要coffeescript,因此jQuery之前必须{}}}。