我的 Rails 3.1.rc4 应用程序运行良好,但我正在尝试找出在管道中存储我的 js 文件的适当方法。如果我将任何代码放在 application.js 以外的文件中,我会收到以下错误:
Started GET "/assets/application.js" for 127.0.0.1 at 2011-07-21 23:15:02 -0500 Compiled ~/Dropbox/Rails/myapp/app/assets/javascripts/application.js.coffee (224ms) (pid 69397) Error compiling asset application.js: ExecJS::ProgramError: SyntaxError: Reserved word "function" on line 1 (in /Users/micahalcorn/Dropbox/Rails/myapp/app/assets/javascripts/users/registrations.js.coffee) Served asset /application.js - 500 Internal Server Error
无论哪个文件(在本例中为 registrations
)都会发生这种情况,并且无论文件中的第一个词如何声明“保留字”(var
,功能
等)。我正在使用 node.js 作为我的运行时环境,如果我删除 coffeescript 编译 gems 并将其视为 Rails 3.0 应用程序,一切都会正常工作。我想更好地了解 Assets 管道并遵循惯例。感谢您的任何建议!
最佳答案
错误
SyntaxError: Reserved word "function" on line 1
是 CoffeeScript 编译器错误。在 registrations.js.coffee
中将 function
转换为 ->
,或者将其重命名为 registrations.js
以便该文件将作为原始 JavaScript 读取。
关于node.js - 编译 Rails 3.1 Assets 的 ExecJS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785727/