【问题标题】:Including CoffeeScript file in rails在 rails 中包含 CoffeeScript 文件
【发布时间】:2013-08-08 23:24:03
【问题描述】:

我查看了coffeeScript,真的很想在我的rails 应用程序中尝试一下。我知道从 rails 3.1 开始,coffeeScript 现在包含在 rails 中。但我在让它工作时遇到了一些问题。

我有一个名为lens.js 的文件,我已将其重命名为lens.js.coffee,然后将我所有的js 转换为coffee。从我看过的屏幕截图和我读过的博客来看,这似乎就是我所需要的。但它没有以某种方式拾取文件。

GET http://www.cairo.dev/javascripts/lens.js 404 (Not Found) 

是控制台正在丢弃的内容。我将它包含在我所有其他 js 文件中。

= javascript_include_tag 'lens', 'jquery-ui.min', 'rails', 'application', 'popup', 'jquery.zclip', 'underscore-min'

注意:该链接是 HAML

这应该可以工作,因为它将coffeeScript 编译成js。然后我想知道它是否没有安装所以我将gem 'coffee-script' 添加到我的gemfile 中,但我仍然没有捆绑任何东西。

我是不是在做傻事。或者我错过了什么?

【问题讨论】:

  • 捆绑后是否重启了服务器?
  • lens.js.coffeeapp/assets/javascripts 目录中吗?
  • 这个应用是在资产管道设置之前构建的。所以我现在正忙着升级它。希望这能解决这个问题

标签: ruby-on-rails coffeescript


【解决方案1】:

尽量不要在你的 gemfile 中添加gem 'coffee-script',但是:

group :assets do
  gem 'coffee-rails'
end

如果这不起作用,您可以尝试从javascript_include_tag 中删除您的lens,并确保您的application.js 中有此行​​:

//= require_tree .

【讨论】:

  • 我刚刚尝试过,但仍然没有骰子.. 有没有像 coffeescript_include_tag 这样的东西?哈哈
  • 您确定您尝试了第二个选项吗?实际上,通过使用它,您可以从 javascript_include_tag 中删除所有库,然后离开: javascript_include_tag :application
  • Nop : ) 你的 config/application.rb 中有 config.assets.enabled = true 吗?更改 Gemfile 后,您是否运行了另一个 bundle install
  • 当我添加 config.assets.endabled = true 时,它删除了我所有的资产。是的,我运行了捆绑安装。并重新启动应用程序,因为我正在使用 pow。
  • 什么意思?无论如何,您不应该在开发中拥有静态资产...
【解决方案2】:

试试rake assets:clean。似乎 Rails 有时会在开发环境中读取预编译的资产。

来源 Rails 3.1 not detecting Coffeescript and Javascript changes?

【讨论】:

    猜你喜欢
    • 2012-05-05
    • 2013-10-30
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2013-07-16
    • 2013-04-29
    相关资源
    最近更新 更多